├── .circleci └── config.yml ├── .gitignore ├── LICENSE ├── README.md ├── bench ├── .gitignore ├── Makefile ├── data │ ├── avatar │ │ ├── animal-1296724_1280.png │ │ ├── animal-160760_1280.png │ │ ├── animal-2029283_1280.png │ │ ├── ar_kakuchou_genjitsu.png │ │ ├── avatar-1294775_1280.png │ │ ├── avatar-1295389_1280.png │ │ ├── avatar-1295393_1280.png │ │ ├── avatar-1295430_1280.png │ │ ├── beer_glass.png │ │ ├── beer_man.png │ │ ├── bird_aoitori_bluebird.png │ │ ├── bluebird_pakutsui.png │ │ ├── bohol-2515229_1280.png │ │ ├── building-blocks-2026722_1280.png │ │ ├── business_jinzai_tsukaisute.png │ │ ├── businessman-310819.png │ │ ├── canard-159511_1280.png │ │ ├── chair_boy.png │ │ ├── chair_plastic.png │ │ ├── chair_wood.png │ │ ├── chick-1761740_1280.png │ │ ├── chocolate-2696873_1280.png │ │ ├── computer_single_board.png │ │ ├── cow-48494_1280.png │ │ ├── cute-1751246_1280.png │ │ ├── dice-152179_1280.png │ │ ├── dog-1194083_1920.jpg │ │ ├── dog-2155329_1280.png │ │ ├── dog-48490_1280.png │ │ ├── dollar-2719007_1280.png │ │ ├── duck-312100_1280.png │ │ ├── duck-46434_1280.png │ │ ├── eagle-354255_1920.jpg │ │ ├── fish-2638627_1280.png │ │ ├── food_nikuzushi1.png │ │ ├── football-157931_1280.png │ │ ├── gimp-24927_1280.png │ │ ├── gnu-161336_1280.png │ │ ├── gnu-161340_1280.png │ │ ├── hamburgers-576307_1280.png │ │ ├── hug-2702900_1280.png │ │ ├── jiko_isu_korogeru.png │ │ ├── ladybug-1718997_1280.png │ │ ├── macaw-20282_1280.jpg │ │ ├── man-156584.png │ │ ├── mans-face-2623006.png │ │ ├── mascot-2516135_1280.png │ │ ├── meerkat-2738984_1280.png │ │ ├── nigirizushi_moriawase.png │ │ ├── owl-158409_1280.png │ │ ├── owl-158414_1280.png │ │ ├── penguin-154954_1280.png │ │ ├── penguin-161387_1280.png │ │ ├── phoenix-1301889_1280.png │ │ ├── pumpkin-23439_1280.png │ │ ├── smilie-2071435_1280.png │ │ ├── snooker-150237_1280.png │ │ ├── strawberry-34066_1280.png │ │ ├── sushi_makizushi_itamae.png │ │ ├── sushi_uni_norinashi.png │ │ ├── switch-23328_1280.png │ │ ├── syachiku.png │ │ ├── syokuji_tabesugi_woman.png │ │ ├── tomato-304316_1280.png │ │ ├── user-297330.png │ │ └── water-46344_1280.png │ ├── default.png │ ├── large-avatar │ │ ├── cats-eyes-2671903.jpg │ │ ├── eagle-2657888.jpg │ │ ├── food-715542.jpg │ │ ├── lions-1660044.jpg │ │ └── parrot-2756488.jpg │ ├── message │ │ ├── こころ.txt │ │ ├── 吾輩は猫である.txt │ │ └── 坊っちゃん.txt │ └── user.tsv ├── src │ ├── bench │ │ ├── checker.go │ │ ├── counter │ │ │ └── counter.go │ │ ├── dataset.go │ │ ├── scenario.go │ │ ├── staticfile.go │ │ ├── structure.go │ │ ├── urlcache │ │ │ └── cache.go │ │ └── util.go │ └── cmd │ │ ├── bench │ │ ├── bench.go │ │ ├── job.go │ │ └── workermode.go │ │ ├── gen-initial-dataset │ │ └── main.go │ │ └── update │ │ └── update.go └── vendor │ └── manifest ├── db ├── init.sh └── isubata.sql ├── files ├── app │ ├── env.sh │ ├── isubata.golang.service │ ├── isubata.nodejs.service │ ├── isubata.perl.service │ ├── isubata.php-fpm.conf │ ├── isubata.php.service │ ├── isubata.python.service │ ├── isubata.ruby.service │ ├── nginx.conf │ ├── nginx.php.conf │ └── php.ini ├── bench │ └── bench.service └── db │ └── mysqld.cnf ├── provisioning ├── .gitignore ├── Makefile ├── allinone │ ├── README.md │ ├── Vagrantfile │ ├── roles │ │ ├── bench │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ └── systemd │ │ │ │ │ └── system │ │ │ │ │ └── bench.service │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── common │ │ │ ├── files │ │ │ │ └── home │ │ │ │ │ └── isucon │ │ │ │ │ └── env.sh │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── golang │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ └── systemd │ │ │ │ │ └── system │ │ │ │ │ └── isubata.golang.service │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── mysql │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── nginx │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ └── nginx │ │ │ │ │ └── sites-available │ │ │ │ │ ├── nginx.conf │ │ │ │ │ └── nginx.php.conf │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── nodejs │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ └── systemd │ │ │ │ │ └── system │ │ │ │ │ └── isubata.nodejs.service │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── perl │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ └── systemd │ │ │ │ │ └── system │ │ │ │ │ └── isubata.perl.service │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── php │ │ │ ├── files │ │ │ │ ├── etc │ │ │ │ │ └── systemd │ │ │ │ │ │ └── system │ │ │ │ │ │ └── isubata.php.service │ │ │ │ └── home │ │ │ │ │ └── isucon │ │ │ │ │ └── local │ │ │ │ │ └── php │ │ │ │ │ └── etc │ │ │ │ │ ├── isubata.php-fpm.conf │ │ │ │ │ └── php.ini │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── python │ │ │ ├── files │ │ │ │ └── etc │ │ │ │ │ └── systemd │ │ │ │ │ └── system │ │ │ │ │ └── isubata.python.service │ │ │ ├── handlers │ │ │ │ └── main.yml │ │ │ └── tasks │ │ │ │ └── main.yml │ │ └── ruby │ │ │ ├── files │ │ │ └── etc │ │ │ │ └── systemd │ │ │ │ └── system │ │ │ │ └── isubata.ruby.service │ │ │ ├── handlers │ │ │ └── main.yml │ │ │ └── tasks │ │ │ └── main.yml │ ├── site.yml │ └── spec │ │ ├── README.md │ │ ├── addr.yaml │ │ ├── file.yaml │ │ ├── goss.yaml │ │ ├── http.yaml │ │ ├── package.yaml │ │ ├── port.yaml │ │ ├── process.yaml │ │ ├── service.yaml │ │ └── user.yaml ├── manifest_allinone.json ├── misc │ ├── create-ova │ │ ├── Vagrantfile │ │ ├── create-ova.sh │ │ └── sakura_ubuntu_package.list │ ├── debugvm │ │ └── Vagrantfile │ └── sakura_ubuntu_package.list └── packer_variables.json └── webapp ├── .gitignore ├── go ├── .gitignore ├── Makefile ├── README ├── src │ └── isubata │ │ ├── Gopkg.lock │ │ ├── Gopkg.toml │ │ ├── app.go │ │ ├── vendor │ │ ├── github.com │ │ │ ├── dgrijalva │ │ │ │ └── jwt-go │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── MIGRATION_GUIDE.md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── VERSION_HISTORY.md │ │ │ │ │ ├── claims.go │ │ │ │ │ ├── cmd │ │ │ │ │ └── jwt │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── app.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── ecdsa.go │ │ │ │ │ ├── ecdsa_test.go │ │ │ │ │ ├── ecdsa_utils.go │ │ │ │ │ ├── errors.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── hmac.go │ │ │ │ │ ├── hmac_example_test.go │ │ │ │ │ ├── hmac_test.go │ │ │ │ │ ├── http_example_test.go │ │ │ │ │ ├── map_claims.go │ │ │ │ │ ├── none.go │ │ │ │ │ ├── none_test.go │ │ │ │ │ ├── parser.go │ │ │ │ │ ├── parser_test.go │ │ │ │ │ ├── request │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── extractor.go │ │ │ │ │ ├── extractor_example_test.go │ │ │ │ │ ├── extractor_test.go │ │ │ │ │ ├── oauth2.go │ │ │ │ │ ├── request.go │ │ │ │ │ └── request_test.go │ │ │ │ │ ├── rsa.go │ │ │ │ │ ├── rsa_pss.go │ │ │ │ │ ├── rsa_pss_test.go │ │ │ │ │ ├── rsa_test.go │ │ │ │ │ ├── rsa_utils.go │ │ │ │ │ ├── signing_method.go │ │ │ │ │ ├── test │ │ │ │ │ ├── ec256-private.pem │ │ │ │ │ ├── ec256-public.pem │ │ │ │ │ ├── ec384-private.pem │ │ │ │ │ ├── ec384-public.pem │ │ │ │ │ ├── ec512-private.pem │ │ │ │ │ ├── ec512-public.pem │ │ │ │ │ ├── helpers.go │ │ │ │ │ ├── hmacTestKey │ │ │ │ │ ├── sample_key │ │ │ │ │ └── sample_key.pub │ │ │ │ │ └── token.go │ │ │ ├── go-sql-driver │ │ │ │ └── mysql │ │ │ │ │ ├── .github │ │ │ │ │ ├── ISSUE_TEMPLATE.md │ │ │ │ │ └── PULL_REQUEST_TEMPLATE.md │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── AUTHORS │ │ │ │ │ ├── CHANGELOG.md │ │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── appengine.go │ │ │ │ │ ├── benchmark_test.go │ │ │ │ │ ├── buffer.go │ │ │ │ │ ├── collations.go │ │ │ │ │ ├── connection.go │ │ │ │ │ ├── connection_test.go │ │ │ │ │ ├── const.go │ │ │ │ │ ├── driver.go │ │ │ │ │ ├── driver_test.go │ │ │ │ │ ├── dsn.go │ │ │ │ │ ├── dsn_test.go │ │ │ │ │ ├── errors.go │ │ │ │ │ ├── errors_test.go │ │ │ │ │ ├── infile.go │ │ │ │ │ ├── packets.go │ │ │ │ │ ├── packets_test.go │ │ │ │ │ ├── result.go │ │ │ │ │ ├── rows.go │ │ │ │ │ ├── statement.go │ │ │ │ │ ├── transaction.go │ │ │ │ │ ├── utils.go │ │ │ │ │ └── utils_test.go │ │ │ ├── gorilla │ │ │ │ ├── context │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── context.go │ │ │ │ │ ├── context_test.go │ │ │ │ │ └── doc.go │ │ │ │ ├── securecookie │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── fuzz.go │ │ │ │ │ ├── fuzz │ │ │ │ │ │ └── gencorpus.go │ │ │ │ │ ├── securecookie.go │ │ │ │ │ └── securecookie_test.go │ │ │ │ └── sessions │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── lex.go │ │ │ │ │ ├── sessions.go │ │ │ │ │ ├── sessions_test.go │ │ │ │ │ ├── store.go │ │ │ │ │ └── store_test.go │ │ │ ├── jmoiron │ │ │ │ └── sqlx │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── bind.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── named.go │ │ │ │ │ ├── named_context.go │ │ │ │ │ ├── named_context_test.go │ │ │ │ │ ├── named_test.go │ │ │ │ │ ├── reflectx │ │ │ │ │ ├── README.md │ │ │ │ │ ├── reflect.go │ │ │ │ │ └── reflect_test.go │ │ │ │ │ ├── sqlx.go │ │ │ │ │ ├── sqlx_context.go │ │ │ │ │ ├── sqlx_context_test.go │ │ │ │ │ ├── sqlx_test.go │ │ │ │ │ └── types │ │ │ │ │ ├── README.md │ │ │ │ │ ├── types.go │ │ │ │ │ └── types_test.go │ │ │ ├── labstack │ │ │ │ ├── echo-contrib │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── Gopkg.lock │ │ │ │ │ ├── Gopkg.toml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── casbin │ │ │ │ │ │ ├── auth_model.conf │ │ │ │ │ │ ├── auth_policy.csv │ │ │ │ │ │ ├── casbin.go │ │ │ │ │ │ └── casbin_test.go │ │ │ │ │ ├── cube │ │ │ │ │ │ ├── cube.go │ │ │ │ │ │ └── cube_test.go │ │ │ │ │ ├── echo.go │ │ │ │ │ └── session │ │ │ │ │ │ ├── session.go │ │ │ │ │ │ └── session_test.go │ │ │ │ ├── echo │ │ │ │ │ ├── .editorconfig │ │ │ │ │ ├── .gitattributes │ │ │ │ │ ├── .github │ │ │ │ │ │ └── ISSUE_TEMPLATE.md │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── Gopkg.lock │ │ │ │ │ ├── Gopkg.toml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── Makefile │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _fixture │ │ │ │ │ │ ├── certs │ │ │ │ │ │ │ ├── cert.pem │ │ │ │ │ │ │ └── key.pem │ │ │ │ │ │ ├── favicon.ico │ │ │ │ │ │ ├── folder │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── images │ │ │ │ │ │ │ └── walle.png │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── bind.go │ │ │ │ │ ├── bind_test.go │ │ │ │ │ ├── context.go │ │ │ │ │ ├── context_test.go │ │ │ │ │ ├── echo.go │ │ │ │ │ ├── echo_go1.8.go │ │ │ │ │ ├── echo_go1.8_test.go │ │ │ │ │ ├── echo_test.go │ │ │ │ │ ├── group.go │ │ │ │ │ ├── group_test.go │ │ │ │ │ ├── log.go │ │ │ │ │ ├── middleware │ │ │ │ │ │ ├── basic_auth.go │ │ │ │ │ │ ├── basic_auth_test.go │ │ │ │ │ │ ├── body_dump.go │ │ │ │ │ │ ├── body_dump_test.go │ │ │ │ │ │ ├── body_limit.go │ │ │ │ │ │ ├── body_limit_test.go │ │ │ │ │ │ ├── compress.go │ │ │ │ │ │ ├── compress_test.go │ │ │ │ │ │ ├── cors.go │ │ │ │ │ │ ├── cors_test.go │ │ │ │ │ │ ├── csrf.go │ │ │ │ │ │ ├── csrf_test.go │ │ │ │ │ │ ├── jwt.go │ │ │ │ │ │ ├── jwt_test.go │ │ │ │ │ │ ├── key_auth.go │ │ │ │ │ │ ├── key_auth_test.go │ │ │ │ │ │ ├── logger.go │ │ │ │ │ │ ├── logger_test.go │ │ │ │ │ │ ├── method_override.go │ │ │ │ │ │ ├── method_override_test.go │ │ │ │ │ │ ├── middleware.go │ │ │ │ │ │ ├── proxy.go │ │ │ │ │ │ ├── proxy_test.go │ │ │ │ │ │ ├── recover.go │ │ │ │ │ │ ├── recover_test.go │ │ │ │ │ │ ├── redirect.go │ │ │ │ │ │ ├── redirect_test.go │ │ │ │ │ │ ├── request_id.go │ │ │ │ │ │ ├── request_id_test.go │ │ │ │ │ │ ├── secure.go │ │ │ │ │ │ ├── secure_test.go │ │ │ │ │ │ ├── slash.go │ │ │ │ │ │ ├── slash_test.go │ │ │ │ │ │ ├── static.go │ │ │ │ │ │ └── static_test.go │ │ │ │ │ ├── response.go │ │ │ │ │ ├── response_test.go │ │ │ │ │ ├── router.go │ │ │ │ │ ├── router_test.go │ │ │ │ │ ├── util_go17.go │ │ │ │ │ └── util_go18.go │ │ │ │ └── gommon │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── bytes │ │ │ │ │ ├── README.md │ │ │ │ │ ├── bytes.go │ │ │ │ │ └── bytes_test.go │ │ │ │ │ ├── color │ │ │ │ │ ├── README.md │ │ │ │ │ ├── color.go │ │ │ │ │ └── color_test.go │ │ │ │ │ ├── email │ │ │ │ │ ├── email.go │ │ │ │ │ └── email_test.go │ │ │ │ │ ├── glide.lock │ │ │ │ │ ├── glide.yaml │ │ │ │ │ ├── gommon.go │ │ │ │ │ ├── log │ │ │ │ │ ├── README.md │ │ │ │ │ ├── color.go │ │ │ │ │ ├── log.go │ │ │ │ │ ├── log_test.go │ │ │ │ │ └── white.go │ │ │ │ │ └── random │ │ │ │ │ ├── random.go │ │ │ │ │ └── random_test.go │ │ │ ├── mattn │ │ │ │ ├── go-colorable │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── _example │ │ │ │ │ │ ├── escape-seq │ │ │ │ │ │ │ └── main.go │ │ │ │ │ │ ├── logrus │ │ │ │ │ │ │ └── main.go │ │ │ │ │ │ └── title │ │ │ │ │ │ │ └── main.go │ │ │ │ │ ├── colorable_appengine.go │ │ │ │ │ ├── colorable_others.go │ │ │ │ │ ├── colorable_test.go │ │ │ │ │ ├── colorable_windows.go │ │ │ │ │ └── noncolorable.go │ │ │ │ └── go-isatty │ │ │ │ │ ├── .travis.yml │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── isatty_appengine.go │ │ │ │ │ ├── isatty_bsd.go │ │ │ │ │ ├── isatty_linux.go │ │ │ │ │ ├── isatty_linux_ppc64x.go │ │ │ │ │ ├── isatty_others.go │ │ │ │ │ ├── isatty_others_test.go │ │ │ │ │ ├── isatty_solaris.go │ │ │ │ │ ├── isatty_windows.go │ │ │ │ │ └── isatty_windows_test.go │ │ │ └── valyala │ │ │ │ ├── bytebufferpool │ │ │ │ ├── .travis.yml │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── bytebuffer.go │ │ │ │ ├── bytebuffer_example_test.go │ │ │ │ ├── bytebuffer_test.go │ │ │ │ ├── bytebuffer_timing_test.go │ │ │ │ ├── doc.go │ │ │ │ ├── pool.go │ │ │ │ └── pool_test.go │ │ │ │ └── fasttemplate │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── example_test.go │ │ │ │ ├── template.go │ │ │ │ ├── template_test.go │ │ │ │ ├── template_timing_test.go │ │ │ │ ├── unsafe.go │ │ │ │ └── unsafe_gae.go │ │ └── golang.org │ │ │ └── x │ │ │ ├── crypto │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTING.md │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── README.md │ │ │ ├── acme │ │ │ │ ├── acme.go │ │ │ │ ├── acme_test.go │ │ │ │ ├── autocert │ │ │ │ │ ├── autocert.go │ │ │ │ │ ├── autocert_test.go │ │ │ │ │ ├── cache.go │ │ │ │ │ ├── cache_test.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── listener.go │ │ │ │ │ ├── renewal.go │ │ │ │ │ └── renewal_test.go │ │ │ │ ├── jws.go │ │ │ │ ├── jws_test.go │ │ │ │ ├── types.go │ │ │ │ └── types_test.go │ │ │ ├── bcrypt │ │ │ │ ├── base64.go │ │ │ │ ├── bcrypt.go │ │ │ │ └── bcrypt_test.go │ │ │ ├── blake2b │ │ │ │ ├── blake2b.go │ │ │ │ ├── blake2bAVX2_amd64.go │ │ │ │ ├── blake2bAVX2_amd64.s │ │ │ │ ├── blake2b_amd64.go │ │ │ │ ├── blake2b_amd64.s │ │ │ │ ├── blake2b_generic.go │ │ │ │ ├── blake2b_ref.go │ │ │ │ ├── blake2b_test.go │ │ │ │ ├── blake2x.go │ │ │ │ └── register.go │ │ │ ├── blake2s │ │ │ │ ├── blake2s.go │ │ │ │ ├── blake2s_386.go │ │ │ │ ├── blake2s_386.s │ │ │ │ ├── blake2s_amd64.go │ │ │ │ ├── blake2s_amd64.s │ │ │ │ ├── blake2s_generic.go │ │ │ │ ├── blake2s_ref.go │ │ │ │ ├── blake2s_test.go │ │ │ │ ├── blake2x.go │ │ │ │ └── register.go │ │ │ ├── blowfish │ │ │ │ ├── block.go │ │ │ │ ├── blowfish_test.go │ │ │ │ ├── cipher.go │ │ │ │ └── const.go │ │ │ ├── bn256 │ │ │ │ ├── bn256.go │ │ │ │ ├── bn256_test.go │ │ │ │ ├── constants.go │ │ │ │ ├── curve.go │ │ │ │ ├── example_test.go │ │ │ │ ├── gfp12.go │ │ │ │ ├── gfp2.go │ │ │ │ ├── gfp6.go │ │ │ │ ├── optate.go │ │ │ │ └── twist.go │ │ │ ├── cast5 │ │ │ │ ├── cast5.go │ │ │ │ └── cast5_test.go │ │ │ ├── chacha20poly1305 │ │ │ │ ├── chacha20poly1305.go │ │ │ │ ├── chacha20poly1305_amd64.go │ │ │ │ ├── chacha20poly1305_amd64.s │ │ │ │ ├── chacha20poly1305_generic.go │ │ │ │ ├── chacha20poly1305_noasm.go │ │ │ │ ├── chacha20poly1305_test.go │ │ │ │ ├── chacha20poly1305_vectors_test.go │ │ │ │ └── internal │ │ │ │ │ └── chacha20 │ │ │ │ │ ├── chacha_generic.go │ │ │ │ │ └── chacha_test.go │ │ │ ├── codereview.cfg │ │ │ ├── cryptobyte │ │ │ │ ├── asn1.go │ │ │ │ ├── asn1 │ │ │ │ │ └── asn1.go │ │ │ │ ├── asn1_test.go │ │ │ │ ├── builder.go │ │ │ │ ├── cryptobyte_test.go │ │ │ │ ├── example_test.go │ │ │ │ └── string.go │ │ │ ├── curve25519 │ │ │ │ ├── const_amd64.h │ │ │ │ ├── const_amd64.s │ │ │ │ ├── cswap_amd64.s │ │ │ │ ├── curve25519.go │ │ │ │ ├── curve25519_test.go │ │ │ │ ├── doc.go │ │ │ │ ├── freeze_amd64.s │ │ │ │ ├── ladderstep_amd64.s │ │ │ │ ├── mont25519_amd64.go │ │ │ │ ├── mul_amd64.s │ │ │ │ └── square_amd64.s │ │ │ ├── ed25519 │ │ │ │ ├── ed25519.go │ │ │ │ ├── ed25519_test.go │ │ │ │ ├── internal │ │ │ │ │ └── edwards25519 │ │ │ │ │ │ ├── const.go │ │ │ │ │ │ └── edwards25519.go │ │ │ │ └── testdata │ │ │ │ │ └── sign.input.gz │ │ │ ├── hkdf │ │ │ │ ├── example_test.go │ │ │ │ ├── hkdf.go │ │ │ │ └── hkdf_test.go │ │ │ ├── md4 │ │ │ │ ├── example_test.go │ │ │ │ ├── md4.go │ │ │ │ ├── md4_test.go │ │ │ │ └── md4block.go │ │ │ ├── nacl │ │ │ │ ├── auth │ │ │ │ │ ├── auth.go │ │ │ │ │ ├── auth_test.go │ │ │ │ │ └── example_test.go │ │ │ │ ├── box │ │ │ │ │ ├── box.go │ │ │ │ │ ├── box_test.go │ │ │ │ │ └── example_test.go │ │ │ │ └── secretbox │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── secretbox.go │ │ │ │ │ └── secretbox_test.go │ │ │ ├── ocsp │ │ │ │ ├── ocsp.go │ │ │ │ └── ocsp_test.go │ │ │ ├── openpgp │ │ │ │ ├── armor │ │ │ │ │ ├── armor.go │ │ │ │ │ ├── armor_test.go │ │ │ │ │ └── encode.go │ │ │ │ ├── canonical_text.go │ │ │ │ ├── canonical_text_test.go │ │ │ │ ├── clearsign │ │ │ │ │ ├── clearsign.go │ │ │ │ │ └── clearsign_test.go │ │ │ │ ├── elgamal │ │ │ │ │ ├── elgamal.go │ │ │ │ │ └── elgamal_test.go │ │ │ │ ├── errors │ │ │ │ │ └── errors.go │ │ │ │ ├── keys.go │ │ │ │ ├── keys_test.go │ │ │ │ ├── packet │ │ │ │ │ ├── compressed.go │ │ │ │ │ ├── compressed_test.go │ │ │ │ │ ├── config.go │ │ │ │ │ ├── encrypted_key.go │ │ │ │ │ ├── encrypted_key_test.go │ │ │ │ │ ├── literal.go │ │ │ │ │ ├── ocfb.go │ │ │ │ │ ├── ocfb_test.go │ │ │ │ │ ├── one_pass_signature.go │ │ │ │ │ ├── opaque.go │ │ │ │ │ ├── opaque_test.go │ │ │ │ │ ├── packet.go │ │ │ │ │ ├── packet_test.go │ │ │ │ │ ├── private_key.go │ │ │ │ │ ├── private_key_test.go │ │ │ │ │ ├── public_key.go │ │ │ │ │ ├── public_key_test.go │ │ │ │ │ ├── public_key_v3.go │ │ │ │ │ ├── public_key_v3_test.go │ │ │ │ │ ├── reader.go │ │ │ │ │ ├── signature.go │ │ │ │ │ ├── signature_test.go │ │ │ │ │ ├── signature_v3.go │ │ │ │ │ ├── signature_v3_test.go │ │ │ │ │ ├── symmetric_key_encrypted.go │ │ │ │ │ ├── symmetric_key_encrypted_test.go │ │ │ │ │ ├── symmetrically_encrypted.go │ │ │ │ │ ├── symmetrically_encrypted_test.go │ │ │ │ │ ├── userattribute.go │ │ │ │ │ ├── userattribute_test.go │ │ │ │ │ ├── userid.go │ │ │ │ │ └── userid_test.go │ │ │ │ ├── read.go │ │ │ │ ├── read_test.go │ │ │ │ ├── s2k │ │ │ │ │ ├── s2k.go │ │ │ │ │ └── s2k_test.go │ │ │ │ ├── write.go │ │ │ │ └── write_test.go │ │ │ ├── otr │ │ │ │ ├── libotr_test_helper.c │ │ │ │ ├── otr.go │ │ │ │ ├── otr_test.go │ │ │ │ └── smp.go │ │ │ ├── pbkdf2 │ │ │ │ ├── pbkdf2.go │ │ │ │ └── pbkdf2_test.go │ │ │ ├── pkcs12 │ │ │ │ ├── bmp-string.go │ │ │ │ ├── bmp-string_test.go │ │ │ │ ├── crypto.go │ │ │ │ ├── crypto_test.go │ │ │ │ ├── errors.go │ │ │ │ ├── internal │ │ │ │ │ └── rc2 │ │ │ │ │ │ ├── bench_test.go │ │ │ │ │ │ ├── rc2.go │ │ │ │ │ │ └── rc2_test.go │ │ │ │ ├── mac.go │ │ │ │ ├── mac_test.go │ │ │ │ ├── pbkdf.go │ │ │ │ ├── pbkdf_test.go │ │ │ │ ├── pkcs12.go │ │ │ │ ├── pkcs12_test.go │ │ │ │ └── safebags.go │ │ │ ├── poly1305 │ │ │ │ ├── poly1305.go │ │ │ │ ├── poly1305_test.go │ │ │ │ ├── sum_amd64.go │ │ │ │ ├── sum_amd64.s │ │ │ │ ├── sum_arm.go │ │ │ │ ├── sum_arm.s │ │ │ │ └── sum_ref.go │ │ │ ├── ripemd160 │ │ │ │ ├── ripemd160.go │ │ │ │ ├── ripemd160_test.go │ │ │ │ └── ripemd160block.go │ │ │ ├── salsa20 │ │ │ │ ├── salsa │ │ │ │ │ ├── hsalsa20.go │ │ │ │ │ ├── salsa2020_amd64.s │ │ │ │ │ ├── salsa208.go │ │ │ │ │ ├── salsa20_amd64.go │ │ │ │ │ ├── salsa20_ref.go │ │ │ │ │ └── salsa_test.go │ │ │ │ ├── salsa20.go │ │ │ │ └── salsa20_test.go │ │ │ ├── scrypt │ │ │ │ ├── example_test.go │ │ │ │ ├── scrypt.go │ │ │ │ └── scrypt_test.go │ │ │ ├── sha3 │ │ │ │ ├── doc.go │ │ │ │ ├── hashes.go │ │ │ │ ├── keccakf.go │ │ │ │ ├── keccakf_amd64.go │ │ │ │ ├── keccakf_amd64.s │ │ │ │ ├── register.go │ │ │ │ ├── sha3.go │ │ │ │ ├── sha3_test.go │ │ │ │ ├── shake.go │ │ │ │ ├── testdata │ │ │ │ │ └── keccakKats.json.deflate │ │ │ │ ├── xor.go │ │ │ │ ├── xor_generic.go │ │ │ │ └── xor_unaligned.go │ │ │ ├── ssh │ │ │ │ ├── agent │ │ │ │ │ ├── client.go │ │ │ │ │ ├── client_test.go │ │ │ │ │ ├── example_test.go │ │ │ │ │ ├── forward.go │ │ │ │ │ ├── keyring.go │ │ │ │ │ ├── keyring_test.go │ │ │ │ │ ├── server.go │ │ │ │ │ ├── server_test.go │ │ │ │ │ └── testdata_test.go │ │ │ │ ├── benchmark_test.go │ │ │ │ ├── buffer.go │ │ │ │ ├── buffer_test.go │ │ │ │ ├── certs.go │ │ │ │ ├── certs_test.go │ │ │ │ ├── channel.go │ │ │ │ ├── cipher.go │ │ │ │ ├── cipher_test.go │ │ │ │ ├── client.go │ │ │ │ ├── client_auth.go │ │ │ │ ├── client_auth_test.go │ │ │ │ ├── client_test.go │ │ │ │ ├── common.go │ │ │ │ ├── connection.go │ │ │ │ ├── doc.go │ │ │ │ ├── example_test.go │ │ │ │ ├── handshake.go │ │ │ │ ├── handshake_test.go │ │ │ │ ├── kex.go │ │ │ │ ├── kex_test.go │ │ │ │ ├── keys.go │ │ │ │ ├── keys_test.go │ │ │ │ ├── knownhosts │ │ │ │ │ ├── knownhosts.go │ │ │ │ │ └── knownhosts_test.go │ │ │ │ ├── mac.go │ │ │ │ ├── mempipe_test.go │ │ │ │ ├── messages.go │ │ │ │ ├── messages_test.go │ │ │ │ ├── mux.go │ │ │ │ ├── mux_test.go │ │ │ │ ├── server.go │ │ │ │ ├── session.go │ │ │ │ ├── session_test.go │ │ │ │ ├── streamlocal.go │ │ │ │ ├── tcpip.go │ │ │ │ ├── tcpip_test.go │ │ │ │ ├── terminal │ │ │ │ │ ├── terminal.go │ │ │ │ │ ├── terminal_test.go │ │ │ │ │ ├── util.go │ │ │ │ │ ├── util_bsd.go │ │ │ │ │ ├── util_linux.go │ │ │ │ │ ├── util_plan9.go │ │ │ │ │ ├── util_solaris.go │ │ │ │ │ └── util_windows.go │ │ │ │ ├── test │ │ │ │ │ ├── agent_unix_test.go │ │ │ │ │ ├── cert_test.go │ │ │ │ │ ├── dial_unix_test.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── forward_unix_test.go │ │ │ │ │ ├── session_test.go │ │ │ │ │ ├── test_unix_test.go │ │ │ │ │ └── testdata_test.go │ │ │ │ ├── testdata │ │ │ │ │ ├── doc.go │ │ │ │ │ └── keys.go │ │ │ │ ├── testdata_test.go │ │ │ │ ├── transport.go │ │ │ │ └── transport_test.go │ │ │ ├── tea │ │ │ │ ├── cipher.go │ │ │ │ └── tea_test.go │ │ │ ├── twofish │ │ │ │ ├── twofish.go │ │ │ │ └── twofish_test.go │ │ │ ├── xtea │ │ │ │ ├── block.go │ │ │ │ ├── cipher.go │ │ │ │ └── xtea_test.go │ │ │ └── xts │ │ │ │ ├── xts.go │ │ │ │ └── xts_test.go │ │ │ └── sys │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTING.md │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── README.md │ │ │ ├── codereview.cfg │ │ │ ├── plan9 │ │ │ ├── asm.s │ │ │ ├── asm_plan9_386.s │ │ │ ├── asm_plan9_amd64.s │ │ │ ├── const_plan9.go │ │ │ ├── dir_plan9.go │ │ │ ├── env_plan9.go │ │ │ ├── env_unset.go │ │ │ ├── errors_plan9.go │ │ │ ├── mkall.sh │ │ │ ├── mkerrors.sh │ │ │ ├── mksyscall.pl │ │ │ ├── mksysnum_plan9.sh │ │ │ ├── pwd_go15_plan9.go │ │ │ ├── pwd_plan9.go │ │ │ ├── race.go │ │ │ ├── race0.go │ │ │ ├── str.go │ │ │ ├── syscall.go │ │ │ ├── syscall_plan9.go │ │ │ ├── syscall_test.go │ │ │ ├── zsyscall_plan9_386.go │ │ │ ├── zsyscall_plan9_amd64.go │ │ │ └── zsysnum_plan9.go │ │ │ ├── unix │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── asm_darwin_386.s │ │ │ ├── asm_darwin_amd64.s │ │ │ ├── asm_darwin_arm.s │ │ │ ├── asm_darwin_arm64.s │ │ │ ├── asm_dragonfly_amd64.s │ │ │ ├── asm_freebsd_386.s │ │ │ ├── asm_freebsd_amd64.s │ │ │ ├── asm_freebsd_arm.s │ │ │ ├── asm_linux_386.s │ │ │ ├── asm_linux_amd64.s │ │ │ ├── asm_linux_arm.s │ │ │ ├── asm_linux_arm64.s │ │ │ ├── asm_linux_mips64x.s │ │ │ ├── asm_linux_mipsx.s │ │ │ ├── asm_linux_ppc64x.s │ │ │ ├── asm_linux_s390x.s │ │ │ ├── asm_netbsd_386.s │ │ │ ├── asm_netbsd_amd64.s │ │ │ ├── asm_netbsd_arm.s │ │ │ ├── asm_openbsd_386.s │ │ │ ├── asm_openbsd_amd64.s │ │ │ ├── asm_openbsd_arm.s │ │ │ ├── asm_solaris_amd64.s │ │ │ ├── bluetooth_linux.go │ │ │ ├── cap_freebsd.go │ │ │ ├── constants.go │ │ │ ├── creds_test.go │ │ │ ├── dev_darwin.go │ │ │ ├── dev_darwin_test.go │ │ │ ├── dev_dragonfly.go │ │ │ ├── dev_dragonfly_test.go │ │ │ ├── dev_freebsd.go │ │ │ ├── dev_linux.go │ │ │ ├── dev_linux_test.go │ │ │ ├── dev_netbsd.go │ │ │ ├── dev_netbsd_test.go │ │ │ ├── dev_openbsd.go │ │ │ ├── dev_openbsd_test.go │ │ │ ├── dev_solaris_test.go │ │ │ ├── dirent.go │ │ │ ├── endian_big.go │ │ │ ├── endian_little.go │ │ │ ├── env_unix.go │ │ │ ├── env_unset.go │ │ │ ├── errors_freebsd_386.go │ │ │ ├── errors_freebsd_amd64.go │ │ │ ├── errors_freebsd_arm.go │ │ │ ├── export_test.go │ │ │ ├── file_unix.go │ │ │ ├── flock.go │ │ │ ├── flock_linux_32bit.go │ │ │ ├── gccgo.go │ │ │ ├── gccgo_c.c │ │ │ ├── gccgo_linux_amd64.go │ │ │ ├── linux │ │ │ │ ├── Dockerfile │ │ │ │ ├── mkall.go │ │ │ │ ├── mksysnum.pl │ │ │ │ └── types.go │ │ │ ├── mkall.sh │ │ │ ├── mkerrors.sh │ │ │ ├── mkpost.go │ │ │ ├── mksyscall.pl │ │ │ ├── mksyscall_solaris.pl │ │ │ ├── mksysctl_openbsd.pl │ │ │ ├── mksysnum_darwin.pl │ │ │ ├── mksysnum_dragonfly.pl │ │ │ ├── mksysnum_freebsd.pl │ │ │ ├── mksysnum_netbsd.pl │ │ │ ├── mksysnum_openbsd.pl │ │ │ ├── mmap_unix_test.go │ │ │ ├── openbsd_pledge.go │ │ │ ├── openbsd_test.go │ │ │ ├── pagesize_unix.go │ │ │ ├── race.go │ │ │ ├── race0.go │ │ │ ├── sockcmsg_linux.go │ │ │ ├── sockcmsg_unix.go │ │ │ ├── str.go │ │ │ ├── syscall.go │ │ │ ├── syscall_bsd.go │ │ │ ├── syscall_bsd_test.go │ │ │ ├── syscall_darwin.go │ │ │ ├── syscall_darwin_386.go │ │ │ ├── syscall_darwin_amd64.go │ │ │ ├── syscall_darwin_arm.go │ │ │ ├── syscall_darwin_arm64.go │ │ │ ├── syscall_dragonfly.go │ │ │ ├── syscall_dragonfly_amd64.go │ │ │ ├── syscall_freebsd.go │ │ │ ├── syscall_freebsd_386.go │ │ │ ├── syscall_freebsd_amd64.go │ │ │ ├── syscall_freebsd_arm.go │ │ │ ├── syscall_freebsd_test.go │ │ │ ├── syscall_linux.go │ │ │ ├── syscall_linux_386.go │ │ │ ├── syscall_linux_amd64.go │ │ │ ├── syscall_linux_amd64_gc.go │ │ │ ├── syscall_linux_arm.go │ │ │ ├── syscall_linux_arm64.go │ │ │ ├── syscall_linux_mips64x.go │ │ │ ├── syscall_linux_mipsx.go │ │ │ ├── syscall_linux_ppc64x.go │ │ │ ├── syscall_linux_s390x.go │ │ │ ├── syscall_linux_sparc64.go │ │ │ ├── syscall_linux_test.go │ │ │ ├── syscall_netbsd.go │ │ │ ├── syscall_netbsd_386.go │ │ │ ├── syscall_netbsd_amd64.go │ │ │ ├── syscall_netbsd_arm.go │ │ │ ├── syscall_no_getwd.go │ │ │ ├── syscall_openbsd.go │ │ │ ├── syscall_openbsd_386.go │ │ │ ├── syscall_openbsd_amd64.go │ │ │ ├── syscall_openbsd_arm.go │ │ │ ├── syscall_solaris.go │ │ │ ├── syscall_solaris_amd64.go │ │ │ ├── syscall_solaris_test.go │ │ │ ├── syscall_test.go │ │ │ ├── syscall_unix.go │ │ │ ├── syscall_unix_gc.go │ │ │ ├── syscall_unix_test.go │ │ │ ├── types_darwin.go │ │ │ ├── types_dragonfly.go │ │ │ ├── types_freebsd.go │ │ │ ├── types_netbsd.go │ │ │ ├── types_openbsd.go │ │ │ ├── types_solaris.go │ │ │ ├── zerrors_darwin_386.go │ │ │ ├── zerrors_darwin_amd64.go │ │ │ ├── zerrors_darwin_arm.go │ │ │ ├── zerrors_darwin_arm64.go │ │ │ ├── zerrors_dragonfly_amd64.go │ │ │ ├── zerrors_freebsd_386.go │ │ │ ├── zerrors_freebsd_amd64.go │ │ │ ├── zerrors_freebsd_arm.go │ │ │ ├── zerrors_linux_386.go │ │ │ ├── zerrors_linux_amd64.go │ │ │ ├── zerrors_linux_arm.go │ │ │ ├── zerrors_linux_arm64.go │ │ │ ├── zerrors_linux_mips.go │ │ │ ├── zerrors_linux_mips64.go │ │ │ ├── zerrors_linux_mips64le.go │ │ │ ├── zerrors_linux_mipsle.go │ │ │ ├── zerrors_linux_ppc64.go │ │ │ ├── zerrors_linux_ppc64le.go │ │ │ ├── zerrors_linux_s390x.go │ │ │ ├── zerrors_linux_sparc64.go │ │ │ ├── zerrors_netbsd_386.go │ │ │ ├── zerrors_netbsd_amd64.go │ │ │ ├── zerrors_netbsd_arm.go │ │ │ ├── zerrors_openbsd_386.go │ │ │ ├── zerrors_openbsd_amd64.go │ │ │ ├── zerrors_openbsd_arm.go │ │ │ ├── zerrors_solaris_amd64.go │ │ │ ├── zsyscall_darwin_386.go │ │ │ ├── zsyscall_darwin_amd64.go │ │ │ ├── zsyscall_darwin_arm.go │ │ │ ├── zsyscall_darwin_arm64.go │ │ │ ├── zsyscall_dragonfly_amd64.go │ │ │ ├── zsyscall_freebsd_386.go │ │ │ ├── zsyscall_freebsd_amd64.go │ │ │ ├── zsyscall_freebsd_arm.go │ │ │ ├── zsyscall_linux_386.go │ │ │ ├── zsyscall_linux_amd64.go │ │ │ ├── zsyscall_linux_arm.go │ │ │ ├── zsyscall_linux_arm64.go │ │ │ ├── zsyscall_linux_mips.go │ │ │ ├── zsyscall_linux_mips64.go │ │ │ ├── zsyscall_linux_mips64le.go │ │ │ ├── zsyscall_linux_mipsle.go │ │ │ ├── zsyscall_linux_ppc64.go │ │ │ ├── zsyscall_linux_ppc64le.go │ │ │ ├── zsyscall_linux_s390x.go │ │ │ ├── zsyscall_linux_sparc64.go │ │ │ ├── zsyscall_netbsd_386.go │ │ │ ├── zsyscall_netbsd_amd64.go │ │ │ ├── zsyscall_netbsd_arm.go │ │ │ ├── zsyscall_openbsd_386.go │ │ │ ├── zsyscall_openbsd_amd64.go │ │ │ ├── zsyscall_openbsd_arm.go │ │ │ ├── zsyscall_solaris_amd64.go │ │ │ ├── zsysctl_openbsd_386.go │ │ │ ├── zsysctl_openbsd_amd64.go │ │ │ ├── zsysctl_openbsd_arm.go │ │ │ ├── zsysnum_darwin_386.go │ │ │ ├── zsysnum_darwin_amd64.go │ │ │ ├── zsysnum_darwin_arm.go │ │ │ ├── zsysnum_darwin_arm64.go │ │ │ ├── zsysnum_dragonfly_amd64.go │ │ │ ├── zsysnum_freebsd_386.go │ │ │ ├── zsysnum_freebsd_amd64.go │ │ │ ├── zsysnum_freebsd_arm.go │ │ │ ├── zsysnum_linux_386.go │ │ │ ├── zsysnum_linux_amd64.go │ │ │ ├── zsysnum_linux_arm.go │ │ │ ├── zsysnum_linux_arm64.go │ │ │ ├── zsysnum_linux_mips.go │ │ │ ├── zsysnum_linux_mips64.go │ │ │ ├── zsysnum_linux_mips64le.go │ │ │ ├── zsysnum_linux_mipsle.go │ │ │ ├── zsysnum_linux_ppc64.go │ │ │ ├── zsysnum_linux_ppc64le.go │ │ │ ├── zsysnum_linux_s390x.go │ │ │ ├── zsysnum_linux_sparc64.go │ │ │ ├── zsysnum_netbsd_386.go │ │ │ ├── zsysnum_netbsd_amd64.go │ │ │ ├── zsysnum_netbsd_arm.go │ │ │ ├── zsysnum_openbsd_386.go │ │ │ ├── zsysnum_openbsd_amd64.go │ │ │ ├── zsysnum_openbsd_arm.go │ │ │ ├── zsysnum_solaris_amd64.go │ │ │ ├── ztypes_darwin_386.go │ │ │ ├── ztypes_darwin_amd64.go │ │ │ ├── ztypes_darwin_arm.go │ │ │ ├── ztypes_darwin_arm64.go │ │ │ ├── ztypes_dragonfly_amd64.go │ │ │ ├── ztypes_freebsd_386.go │ │ │ ├── ztypes_freebsd_amd64.go │ │ │ ├── ztypes_freebsd_arm.go │ │ │ ├── ztypes_linux_386.go │ │ │ ├── ztypes_linux_amd64.go │ │ │ ├── ztypes_linux_arm.go │ │ │ ├── ztypes_linux_arm64.go │ │ │ ├── ztypes_linux_mips.go │ │ │ ├── ztypes_linux_mips64.go │ │ │ ├── ztypes_linux_mips64le.go │ │ │ ├── ztypes_linux_mipsle.go │ │ │ ├── ztypes_linux_ppc64.go │ │ │ ├── ztypes_linux_ppc64le.go │ │ │ ├── ztypes_linux_s390x.go │ │ │ ├── ztypes_linux_sparc64.go │ │ │ ├── ztypes_netbsd_386.go │ │ │ ├── ztypes_netbsd_amd64.go │ │ │ ├── ztypes_netbsd_arm.go │ │ │ ├── ztypes_openbsd_386.go │ │ │ ├── ztypes_openbsd_amd64.go │ │ │ ├── ztypes_openbsd_arm.go │ │ │ └── ztypes_solaris_amd64.go │ │ │ └── windows │ │ │ ├── asm_windows_386.s │ │ │ ├── asm_windows_amd64.s │ │ │ ├── dll_windows.go │ │ │ ├── env_unset.go │ │ │ ├── env_windows.go │ │ │ ├── eventlog.go │ │ │ ├── exec_windows.go │ │ │ ├── memory_windows.go │ │ │ ├── mksyscall.go │ │ │ ├── race.go │ │ │ ├── race0.go │ │ │ ├── registry │ │ │ ├── export_test.go │ │ │ ├── key.go │ │ │ ├── mksyscall.go │ │ │ ├── registry_test.go │ │ │ ├── syscall.go │ │ │ ├── value.go │ │ │ └── zsyscall_windows.go │ │ │ ├── security_windows.go │ │ │ ├── service.go │ │ │ ├── str.go │ │ │ ├── svc │ │ │ ├── debug │ │ │ │ ├── log.go │ │ │ │ └── service.go │ │ │ ├── event.go │ │ │ ├── eventlog │ │ │ │ ├── install.go │ │ │ │ ├── log.go │ │ │ │ └── log_test.go │ │ │ ├── example │ │ │ │ ├── beep.go │ │ │ │ ├── install.go │ │ │ │ ├── main.go │ │ │ │ ├── manage.go │ │ │ │ └── service.go │ │ │ ├── go12.c │ │ │ ├── go12.go │ │ │ ├── go13.go │ │ │ ├── mgr │ │ │ │ ├── config.go │ │ │ │ ├── mgr.go │ │ │ │ ├── mgr_test.go │ │ │ │ └── service.go │ │ │ ├── security.go │ │ │ ├── service.go │ │ │ ├── svc_test.go │ │ │ ├── sys_386.s │ │ │ └── sys_amd64.s │ │ │ ├── syscall.go │ │ │ ├── syscall_test.go │ │ │ ├── syscall_windows.go │ │ │ ├── syscall_windows_test.go │ │ │ ├── types_windows.go │ │ │ ├── types_windows_386.go │ │ │ ├── types_windows_amd64.go │ │ │ └── zsyscall_windows.go │ │ └── views │ │ ├── add_channel.html │ │ ├── base.html │ │ ├── channel.html │ │ ├── history.html │ │ ├── index.html │ │ ├── login.html │ │ ├── profile.html │ │ └── register.html └── views ├── nodejs ├── .gitignore ├── .node-version ├── index.js ├── package.json └── views │ ├── .keep │ ├── add_channel.html │ ├── base.html │ ├── channel.html │ ├── history.html │ ├── index.html │ ├── login.html │ ├── profile.html │ └── register.html ├── perl ├── app.psgi ├── cpanfile ├── cpanfile.snapshot ├── lib │ └── Isubata │ │ └── Web.pm └── views │ ├── add_channel.tx │ ├── base.tx │ ├── channel.tx │ ├── history.tx │ ├── index.tx │ ├── login.tx │ ├── profile.tx │ └── register.tx ├── php ├── README.md ├── composer.json ├── composer.lock ├── index.php └── views │ ├── add_channel.twig │ ├── base.twig │ ├── channel.twig │ ├── history.twig │ ├── index.twig │ ├── login.twig │ ├── profile.twig │ └── register.twig ├── public ├── css │ ├── bootstrap.min.css │ └── main.css ├── favicon.ico ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 └── js │ ├── bootstrap.min.js │ ├── chat.js │ ├── jquery.min.js │ └── tether.min.js ├── python ├── app.py ├── requirements.txt ├── setup.sh └── templates │ ├── add_channel.html │ ├── base.html │ ├── channel.html │ ├── history.html │ ├── index.html │ ├── login.html │ ├── profile.html │ └── register.html ├── ruby ├── .gitignore ├── .ruby-version ├── Gemfile ├── Gemfile.lock ├── app.rb ├── config.ru ├── setup.sh └── views │ ├── add_channel.erb │ ├── channel.erb │ ├── history.erb │ ├── index.erb │ ├── layout.erb │ ├── login.erb │ ├── profile.erb │ └── register.erb └── rust ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── src └── main.rs └── views ├── add_channel.tmpl ├── channel.tmpl ├── history.tmpl ├── index.tmpl ├── layout.tmpl ├── login.tmpl ├── profile.tmpl └── register.tmpl /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | jobs: 4 | build: 5 | docker: 6 | - image: yokogawa/ansible-lint 7 | working_directory: ~/isucon/ 8 | 9 | steps: 10 | - checkout 11 | 12 | - run: 13 | name: Run ansible lint 14 | command: git ls-files -z provisioning/*.yml | xargs -0 -r ansible-lint --force-color -x ANSIBLE0016 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | *.swo 4 | *.pyc 5 | .idea/ 6 | webapp/php/vendor 7 | bench/isucon7q-initial-dataset.sql.gz 8 | bench/result.json 9 | webapp/perl/local 10 | -------------------------------------------------------------------------------- /bench/.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | pkg 3 | vendor 4 | -------------------------------------------------------------------------------- /bench/Makefile: -------------------------------------------------------------------------------- 1 | all: build 2 | 3 | .PHONY: build 4 | build: 5 | GOPATH=`pwd`:`pwd`/vendor go install ./src/cmd/... 6 | 7 | .PHONY: race 8 | race: 9 | GOPATH=`pwd`:`pwd`/vendor go install -race ./src/cmd/... 10 | -------------------------------------------------------------------------------- /bench/data/avatar/animal-1296724_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/animal-1296724_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/animal-160760_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/animal-160760_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/animal-2029283_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/animal-2029283_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/ar_kakuchou_genjitsu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/ar_kakuchou_genjitsu.png -------------------------------------------------------------------------------- /bench/data/avatar/avatar-1294775_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/avatar-1294775_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/avatar-1295389_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/avatar-1295389_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/avatar-1295393_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/avatar-1295393_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/avatar-1295430_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/avatar-1295430_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/beer_glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/beer_glass.png -------------------------------------------------------------------------------- /bench/data/avatar/beer_man.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/beer_man.png -------------------------------------------------------------------------------- /bench/data/avatar/bird_aoitori_bluebird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/bird_aoitori_bluebird.png -------------------------------------------------------------------------------- /bench/data/avatar/bluebird_pakutsui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/bluebird_pakutsui.png -------------------------------------------------------------------------------- /bench/data/avatar/bohol-2515229_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/bohol-2515229_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/building-blocks-2026722_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/building-blocks-2026722_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/business_jinzai_tsukaisute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/business_jinzai_tsukaisute.png -------------------------------------------------------------------------------- /bench/data/avatar/businessman-310819.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/businessman-310819.png -------------------------------------------------------------------------------- /bench/data/avatar/canard-159511_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/canard-159511_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/chair_boy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/chair_boy.png -------------------------------------------------------------------------------- /bench/data/avatar/chair_plastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/chair_plastic.png -------------------------------------------------------------------------------- /bench/data/avatar/chair_wood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/chair_wood.png -------------------------------------------------------------------------------- /bench/data/avatar/chick-1761740_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/chick-1761740_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/chocolate-2696873_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/chocolate-2696873_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/computer_single_board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/computer_single_board.png -------------------------------------------------------------------------------- /bench/data/avatar/cow-48494_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/cow-48494_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/cute-1751246_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/cute-1751246_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/dice-152179_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/dice-152179_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/dog-1194083_1920.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/dog-1194083_1920.jpg -------------------------------------------------------------------------------- /bench/data/avatar/dog-2155329_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/dog-2155329_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/dog-48490_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/dog-48490_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/dollar-2719007_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/dollar-2719007_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/duck-312100_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/duck-312100_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/duck-46434_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/duck-46434_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/eagle-354255_1920.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/eagle-354255_1920.jpg -------------------------------------------------------------------------------- /bench/data/avatar/fish-2638627_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/fish-2638627_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/food_nikuzushi1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/food_nikuzushi1.png -------------------------------------------------------------------------------- /bench/data/avatar/football-157931_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/football-157931_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/gimp-24927_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/gimp-24927_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/gnu-161336_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/gnu-161336_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/gnu-161340_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/gnu-161340_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/hamburgers-576307_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/hamburgers-576307_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/hug-2702900_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/hug-2702900_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/jiko_isu_korogeru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/jiko_isu_korogeru.png -------------------------------------------------------------------------------- /bench/data/avatar/ladybug-1718997_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/ladybug-1718997_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/macaw-20282_1280.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/macaw-20282_1280.jpg -------------------------------------------------------------------------------- /bench/data/avatar/man-156584.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/man-156584.png -------------------------------------------------------------------------------- /bench/data/avatar/mans-face-2623006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/mans-face-2623006.png -------------------------------------------------------------------------------- /bench/data/avatar/mascot-2516135_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/mascot-2516135_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/meerkat-2738984_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/meerkat-2738984_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/nigirizushi_moriawase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/nigirizushi_moriawase.png -------------------------------------------------------------------------------- /bench/data/avatar/owl-158409_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/owl-158409_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/owl-158414_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/owl-158414_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/penguin-154954_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/penguin-154954_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/penguin-161387_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/penguin-161387_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/phoenix-1301889_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/phoenix-1301889_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/pumpkin-23439_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/pumpkin-23439_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/smilie-2071435_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/smilie-2071435_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/snooker-150237_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/snooker-150237_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/strawberry-34066_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/strawberry-34066_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/sushi_makizushi_itamae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/sushi_makizushi_itamae.png -------------------------------------------------------------------------------- /bench/data/avatar/sushi_uni_norinashi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/sushi_uni_norinashi.png -------------------------------------------------------------------------------- /bench/data/avatar/switch-23328_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/switch-23328_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/syachiku.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/syachiku.png -------------------------------------------------------------------------------- /bench/data/avatar/syokuji_tabesugi_woman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/syokuji_tabesugi_woman.png -------------------------------------------------------------------------------- /bench/data/avatar/tomato-304316_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/tomato-304316_1280.png -------------------------------------------------------------------------------- /bench/data/avatar/user-297330.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/user-297330.png -------------------------------------------------------------------------------- /bench/data/avatar/water-46344_1280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/avatar/water-46344_1280.png -------------------------------------------------------------------------------- /bench/data/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/default.png -------------------------------------------------------------------------------- /bench/data/large-avatar/cats-eyes-2671903.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/large-avatar/cats-eyes-2671903.jpg -------------------------------------------------------------------------------- /bench/data/large-avatar/eagle-2657888.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/large-avatar/eagle-2657888.jpg -------------------------------------------------------------------------------- /bench/data/large-avatar/food-715542.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/large-avatar/food-715542.jpg -------------------------------------------------------------------------------- /bench/data/large-avatar/lions-1660044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/large-avatar/lions-1660044.jpg -------------------------------------------------------------------------------- /bench/data/large-avatar/parrot-2756488.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/bench/data/large-avatar/parrot-2756488.jpg -------------------------------------------------------------------------------- /bench/src/cmd/bench/job.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "time" 4 | 5 | // portal/job.go と同期する事 6 | 7 | type BenchResult struct { 8 | JobID string `json:"job_id"` 9 | IPAddrs string `json:"ip_addrs"` 10 | 11 | Pass bool `json:"pass"` 12 | Score int64 `json:"score"` 13 | Message string `json:"message"` 14 | Errors []string `json:"error"` 15 | Logs []string `json:"log"` 16 | LoadLevel int `json:"load_level"` 17 | 18 | StartTime time.Time `json:"start_time"` 19 | EndTime time.Time `json:"end_time"` 20 | } 21 | 22 | type Job struct { 23 | ID int `json:"id"` 24 | TeamID int `json:"team_id"` 25 | IPAddrs string `json:"ip_addrs"` 26 | } 27 | -------------------------------------------------------------------------------- /bench/src/cmd/gen-initial-dataset/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bench" 5 | "flag" 6 | ) 7 | 8 | var dataPath = flag.String("data", "./data", "path to data directory") 9 | 10 | func main() { 11 | bench.DataPath = *dataPath 12 | bench.PrepareDataSet() 13 | bench.GenerateInitialDataSetSQL("isucon7q-initial-dataset.sql.gz") 14 | } 15 | -------------------------------------------------------------------------------- /bench/vendor/manifest: -------------------------------------------------------------------------------- 1 | { 2 | "version": 0, 3 | "dependencies": [ 4 | { 5 | "importpath": "github.com/PuerkitoBio/goquery", 6 | "repository": "https://github.com/PuerkitoBio/goquery", 7 | "revision": "ce645ea5e67a713599b7415f21f0786451fa9554", 8 | "branch": "master" 9 | }, 10 | { 11 | "importpath": "github.com/andybalholm/cascadia", 12 | "repository": "https://github.com/andybalholm/cascadia", 13 | "revision": "349dd0209470eabd9514242c688c403c0926d266", 14 | "branch": "master" 15 | }, 16 | { 17 | "importpath": "github.com/marcw/cachecontrol", 18 | "repository": "https://github.com/marcw/cachecontrol", 19 | "revision": "30341fe9a7d531c7bc6414af55ceb59b9e61499a", 20 | "branch": "master" 21 | }, 22 | { 23 | "importpath": "golang.org/x/net/html", 24 | "repository": "https://go.googlesource.com/net", 25 | "revision": "1c05540f6879653db88113bc4a2b70aec4bd491f", 26 | "branch": "master", 27 | "path": "/html" 28 | } 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /db/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DB_DIR=$(cd $(dirname $0) && pwd) 4 | cd $DB_DIR 5 | 6 | mysql -uroot -e "DROP DATABASE IF EXISTS isubata; CREATE DATABASE isubata;" 7 | mysql -uroot isubata < ./isubata.sql 8 | -------------------------------------------------------------------------------- /files/app/env.sh: -------------------------------------------------------------------------------- 1 | ISUBATA_DB_HOST=db00 2 | ISUBATA_DB_USER=isucon 3 | ISUBATA_DB_PASSWORD=isucon 4 | -------------------------------------------------------------------------------- /files/app/isubata.golang.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in golang 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/go/ 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/isubata/webapp/go/isubata 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /files/app/isubata.nodejs.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in nodejs 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/nodejs 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/node/bin/node /home/isucon/isubata/webapp/nodejs 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /files/app/isubata.perl.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in perl 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/perl 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/perl/bin/carton exec plackup -s Starlet -p 5000 app.psgi 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /files/app/isubata.php-fpm.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | pid = run/isubata.php-fpm.pid 3 | error_log = log/isubata.php-fpm.log 4 | syslog.facility = daemon 5 | syslog.ident = php-fpm 6 | log_level = notice 7 | daemonize = no 8 | 9 | [isubata] 10 | user = nobody 11 | group = nobody 12 | listen = 127.0.0.1:9000 13 | pm = static 14 | pm.max_children = 5 15 | 16 | env[PATH] = $PATH 17 | env[ISUBATA_DB_HOST] = $ISUBATA_DB_HOST 18 | env[ISUBATA_DB_USER] = $ISUBATA_DB_USER 19 | env[ISUBATA_DB_PASSWORD] = $ISUBATA_DB_PASSWORD 20 | -------------------------------------------------------------------------------- /files/app/isubata.php.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in PHP 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/php 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/php/sbin/php-fpm --fpm-config /home/isucon/local/php/etc/isubata.php-fpm.conf 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /files/app/isubata.python.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in python 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/python 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/python/bin/gunicorn --workers=4 --threads=4 app:app -b '127.0.0.1:5000' 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /files/app/isubata.ruby.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in ruby 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/ruby 6 | EnvironmentFile=/home/isucon/env.sh 7 | Environment=RACK_ENV=production 8 | 9 | ExecStart = /home/isucon/local/ruby/bin/bundle exec puma -p 5000 -t 10 10 | 11 | Restart = always 12 | Type = simple 13 | User = isucon 14 | Group = isucon 15 | 16 | [Install] 17 | WantedBy = multi-user.target 18 | -------------------------------------------------------------------------------- /files/app/nginx.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | listen [::]:80 default_server; 4 | server_name isubata.example.com; 5 | 6 | client_max_body_size 20M; 7 | 8 | root /home/isucon/isubata/webapp/public; 9 | 10 | location /favicon.ico { } 11 | location /fonts/ { } 12 | location /js/ { } 13 | location /css/ { } 14 | 15 | location / { 16 | proxy_set_header Host $http_host; 17 | proxy_pass http://127.0.0.1:5000; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /files/bench/bench.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 benchmark application 3 | 4 | [Service] 5 | WorkingDirectory=/home/ubuntu/bench 6 | ExecStart = /home/ubuntu/bench/bin/bench -workermode -portal https://portal.isu.k0y.org 7 | 8 | Restart = always 9 | Type = simple 10 | User = ubuntu 11 | Group = ubuntu 12 | 13 | [Install] 14 | WantedBy = multi-user.target 15 | -------------------------------------------------------------------------------- /provisioning/.gitignore: -------------------------------------------------------------------------------- 1 | site.retry 2 | ubuntu-xenial-16.04-cloudimg-console.log 3 | *.ova 4 | *.box 5 | .vagrant/ 6 | packer_cache/ 7 | *-vagrant-ovf/ 8 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/bench/files/etc/systemd/system/bench.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 benchmark application 3 | 4 | [Service] 5 | WorkingDirectory=/home/ubuntu/bench 6 | 7 | ExecStart = /home/ubuntu/bench/bin/bench -workermode -portal https://portal.isu.k0y.org 8 | 9 | 10 | Restart = always 11 | Type = simple 12 | User = ubuntu 13 | Group = ubuntu 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/common/files/home/isucon/env.sh: -------------------------------------------------------------------------------- 1 | ISUBATA_DB_HOST=localhost 2 | ISUBATA_DB_USER=isucon 3 | ISUBATA_DB_PASSWORD=isucon 4 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/golang/files/etc/systemd/system/isubata.golang.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in golang 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/go/ 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/isubata/webapp/go/isubata 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/golang/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/mysql/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/nginx/files/etc/nginx/sites-available/nginx.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | listen [::]:80 default_server; 4 | server_name isubata.example.com; 5 | 6 | client_max_body_size 20M; 7 | 8 | root /home/isucon/isubata/webapp/public; 9 | 10 | location /favicon.ico { } 11 | location /fonts/ { } 12 | location /js/ { } 13 | location /css/ { } 14 | 15 | location / { 16 | proxy_set_header Host $http_host; 17 | proxy_pass http://127.0.0.1:5000; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/nginx/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | - name: reload nginx 10 | systemd: 11 | name: nginx 12 | state: reloaded 13 | daemon_reload: yes 14 | 15 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/nginx/tasks/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: Install Package 6 | apt: 7 | pkg: "{{ item }}" 8 | state: installed 9 | with_items: 10 | - nginx 11 | 12 | # http://docs.ansible.com/ansible/latest/file_module.html 13 | - name: Disable default config 14 | file: 15 | path: /etc/nginx/sites-enabled/default 16 | state: absent 17 | 18 | - name: Copy isubata Nginx config 19 | copy: 20 | src: etc/nginx/sites-available/{{ item }} 21 | dest: /etc/nginx/sites-available/{{ item }} 22 | owner: root 23 | group: root 24 | mode: 0644 25 | with_items: 26 | - nginx.conf 27 | - nginx.php.conf 28 | 29 | - name: Enable isubata config 30 | file: 31 | path: /etc/nginx/sites-enabled/nginx.conf 32 | src: /etc/nginx/sites-available/nginx.conf 33 | state: link 34 | notify: 35 | - reload nginx 36 | 37 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/nodejs/files/etc/systemd/system/isubata.nodejs.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in nodejs 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/nodejs 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/node/bin/node /home/isucon/isubata/webapp/nodejs 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/nodejs/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/perl/files/etc/systemd/system/isubata.perl.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in perl 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/perl 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/perl/bin/carton exec plackup -s Starlet -p 5000 app.psgi 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/perl/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/php/files/etc/systemd/system/isubata.php.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in PHP 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/php 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/local/php/sbin/php-fpm --fpm-config /home/isucon/local/php/etc/isubata.php-fpm.conf 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/php/files/home/isucon/local/php/etc/isubata.php-fpm.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | pid = run/isubata.php-fpm.pid 3 | error_log = log/isubata.php-fpm.log 4 | syslog.facility = daemon 5 | syslog.ident = php-fpm 6 | log_level = notice 7 | daemonize = no 8 | 9 | [isubata] 10 | user = nobody 11 | group = nobody 12 | listen = 127.0.0.1:9000 13 | pm = static 14 | pm.max_children = 5 15 | 16 | env[PATH] = $PATH 17 | env[ISUBATA_DB_HOST] = $ISUBATA_DB_HOST 18 | env[ISUBATA_DB_USER] = $ISUBATA_DB_USER 19 | env[ISUBATA_DB_PASSWORD] = $ISUBATA_DB_PASSWORD 20 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/php/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/python/files/etc/systemd/system/isubata.python.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in python 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/python 6 | EnvironmentFile=/home/isucon/env.sh 7 | 8 | ExecStart = /home/isucon/isubata/webapp/python/venv/bin/gunicorn --workers=4 --threads=4 app:app -b '127.0.0.1:5000' 9 | 10 | Restart = always 11 | Type = simple 12 | User = isucon 13 | Group = isucon 14 | 15 | [Install] 16 | WantedBy = multi-user.target 17 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/python/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/ruby/files/etc/systemd/system/isubata.ruby.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description = isucon7 qualifier main application in ruby 3 | 4 | [Service] 5 | WorkingDirectory=/home/isucon/isubata/webapp/ruby 6 | EnvironmentFile=/home/isucon/env.sh 7 | Environment=RACK_ENV=production 8 | 9 | ExecStart = /home/isucon/local/ruby/bin/bundle exec puma -p 5000 -t 10 10 | 11 | Restart = always 12 | Type = simple 13 | User = isucon 14 | Group = isucon 15 | 16 | [Install] 17 | WantedBy = multi-user.target 18 | -------------------------------------------------------------------------------- /provisioning/allinone/roles/ruby/handlers/main.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - name: daemon-reload 6 | systemd: 7 | daemon_reload: yes 8 | 9 | -------------------------------------------------------------------------------- /provisioning/allinone/site.yml: -------------------------------------------------------------------------------- 1 | # -*- mode: Yaml; -*- 2 | # vi: set ts=2 sw=2 sts=0 et: 3 | 4 | --- 5 | - hosts: all 6 | user: ubuntu 7 | become: yes 8 | # for ansible_env 9 | gather_facts: yes 10 | 11 | roles: 12 | - common 13 | - bench 14 | - golang 15 | # - nodejs 16 | # - perl 17 | # - php 18 | # - python 19 | # - ruby 20 | - mysql 21 | - nginx 22 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/README.md: -------------------------------------------------------------------------------- 1 | # 使い方 2 | 3 | ```console 4 | $ ./spec.sh 5 | spec.sh check qualifier server. 6 | Usage: 7 | spec.sh [] 8 | Options: 9 | --target, -t single target 10 | --debug, -d debug mode. 11 | --help, -h print this help. 12 | Example: 13 | spec.sh -t app0022 14 | ``` 15 | 16 | ## 違う goss.yaml を読み込ませる時 17 | 18 | ```console 19 | GOSS_FILE=./reboot.yaml ./spec.sh -i ./isu7q-dummy.tsv 20 | ``` 21 | 22 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/addr.yaml: -------------------------------------------------------------------------------- 1 | tcp://db:3306: 2 | reachable: true 3 | timeout: 500 4 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/goss.yaml: -------------------------------------------------------------------------------- 1 | gossfile: 2 | addr.yaml: {} 3 | file.yaml: {} 4 | http.yaml: {} 5 | package.yaml: {} 6 | port.yaml: {} 7 | process.yaml: {} 8 | service.yaml: {} 9 | user.yaml: {} 10 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/http.yaml: -------------------------------------------------------------------------------- 1 | http: 2 | http://127.0.0.1: 3 | status: 200 4 | timeout: 1000 5 | body: ["Isubata は世界最速のチャットアプリケーションです。"] 6 | 7 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/package.yaml: -------------------------------------------------------------------------------- 1 | packeage: 2 | nginx: 3 | installed: true 4 | mysql-server: 5 | installed: true 6 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/port.yaml: -------------------------------------------------------------------------------- 1 | port: 2 | tcp:22: 3 | listening: true 4 | ip: 5 | - 0.0.0.0 6 | tcp:80: 7 | listening: true 8 | ip: 9 | - 0.0.0.0 10 | tcp:5000: 11 | listening: true 12 | ip: 13 | - 127.0.0.1 14 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/process.yaml: -------------------------------------------------------------------------------- 1 | process: 2 | mysqld: 3 | running: true 4 | nginx: 5 | running: true 6 | sshd: 7 | running: true 8 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/service.yaml: -------------------------------------------------------------------------------- 1 | service: 2 | sshd: 3 | enabled: true 4 | running: true 5 | nginx: 6 | enabled: true 7 | running: true 8 | isubata.python: 9 | enabled: true 10 | running: true 11 | isubata.golang: 12 | enabled: false 13 | running: false 14 | isubata.nodejs: 15 | enabled: false 16 | running: false 17 | isubata.perl: 18 | enabled: false 19 | running: false 20 | isubata.php: 21 | enabled: false 22 | running: false 23 | isubata.ruby: 24 | enabled: false 25 | running: false 26 | mysql: 27 | enabled: true 28 | running: true 29 | 30 | -------------------------------------------------------------------------------- /provisioning/allinone/spec/user.yaml: -------------------------------------------------------------------------------- 1 | user: 2 | ubuntu: 3 | exists: true 4 | uid: 1000 5 | gid: 1000 6 | home: /home/ubuntu 7 | shell: /bin/bash 8 | isucon: 9 | exists: true 10 | uid: 1001 11 | gid: 1001 12 | home: /home/isucon 13 | shell: /bin/bash 14 | -------------------------------------------------------------------------------- /provisioning/misc/create-ova/create-ova.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eux 4 | 5 | cd $(dirname ${0}) 6 | BASENAME="ubuntu1604" 7 | OVA_FILE="${BASENAME}.ova" 8 | 9 | if [[ -f ${OVA_FILE} ]]; then 10 | echo >&2 "${OVA_FILE} is already exists." 11 | echo >&2 "Please remove ${OVA_FILE} and retry" 12 | exit 2 13 | fi 14 | 15 | vagrant up 16 | vagrant halt 17 | vboxmanage export --ovf20 -o ${OVA_FILE} ${BASENAME} 18 | #vagrant destroy -f 19 | vagrant destroy 20 | -------------------------------------------------------------------------------- /provisioning/packer_variables.json: -------------------------------------------------------------------------------- 1 | { 2 | "ssh_host": "127.0.0.1", 3 | "ssh_username": "ubuntu", 4 | "ssh_port": "2222", 5 | "ssh_private_key_file": "./misc/debugvm/.vagrant/machines/default/virtualbox/private_key" 6 | } 7 | -------------------------------------------------------------------------------- /webapp/.gitignore: -------------------------------------------------------------------------------- 1 | venv/ 2 | -------------------------------------------------------------------------------- /webapp/go/.gitignore: -------------------------------------------------------------------------------- 1 | /pkg/ 2 | /isubata 3 | -------------------------------------------------------------------------------- /webapp/go/Makefile: -------------------------------------------------------------------------------- 1 | GOPATH := ${PWD} 2 | export GOPATH 3 | 4 | build: 5 | go build -v isubata 6 | 7 | vet: 8 | go vet ./src/isubata/... 9 | -------------------------------------------------------------------------------- /webapp/go/README: -------------------------------------------------------------------------------- 1 | # Go言語参照実装について 2 | 3 | ## GOPATH 4 | 5 | このディレクトリを GOPATH にして、 src/isucon にアプリのソースを置いています。 6 | 7 | make を実行すれば GOPATH を設定しつつ go build するようになっています。 8 | 9 | 10 | ## 依存ライブラリ 11 | 12 | 依存ライブラリは dep を使って管理していて、 src/isucon/vendor に含まれています。 13 | 14 | ライブラリのバージョンを上げたい場合は、 ``GOPATH=`pwd` go get -u ...`` をしても 15 | vendor 側が優先されるので、 vendor を消すか dep を使ってバージョンを上げてください。 16 | 17 | ライブラリを追加する場合は問題ありません。 18 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/Gopkg.toml: -------------------------------------------------------------------------------- 1 | 2 | # Gopkg.toml example 3 | # 4 | # Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md 5 | # for detailed Gopkg.toml documentation. 6 | # 7 | # required = ["github.com/user/thing/cmd/thing"] 8 | # ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] 9 | # 10 | # [[constraint]] 11 | # name = "github.com/user/project" 12 | # version = "1.0.0" 13 | # 14 | # [[constraint]] 15 | # name = "github.com/user/project2" 16 | # branch = "dev" 17 | # source = "github.com/myfork/project2" 18 | # 19 | # [[override]] 20 | # name = "github.com/x/y" 21 | # version = "2.4.0" 22 | 23 | 24 | [[constraint]] 25 | branch = "master" 26 | name = "github.com/jmoiron/sqlx" 27 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | bin 3 | 4 | 5 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - 1.3 5 | - 1.4 6 | - 1.5 7 | - 1.6 8 | - tip 9 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/cmd/jwt/README.md: -------------------------------------------------------------------------------- 1 | `jwt` command-line tool 2 | ======================= 3 | 4 | This is a simple tool to sign, verify and show JSON Web Tokens from 5 | the command line. 6 | 7 | The following will create and sign a token, then verify it and output the original claims: 8 | 9 | echo {\"foo\":\"bar\"} | bin/jwt -key test/sample_key -alg RS256 -sign - | bin/jwt -key test/sample_key.pub -verify - 10 | 11 | To simply display a token, use: 12 | 13 | echo $JWT | jwt -show - 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/doc.go: -------------------------------------------------------------------------------- 1 | // Package jwt is a Go implementation of JSON Web Tokens: http://self-issued.info/docs/draft-jones-json-web-token.html 2 | // 3 | // See README.md for more info. 4 | package jwt 5 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/request/doc.go: -------------------------------------------------------------------------------- 1 | // Utility package for extracting JWT tokens from 2 | // HTTP requests. 3 | // 4 | // The main function is ParseFromRequest and it's WithClaims variant. 5 | // See examples for how to use the various Extractor implementations 6 | // or roll your own. 7 | package request 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/request/extractor_example_test.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | import ( 4 | "fmt" 5 | "net/url" 6 | ) 7 | 8 | const ( 9 | exampleTokenA = "A" 10 | ) 11 | 12 | func ExampleHeaderExtractor() { 13 | req := makeExampleRequest("GET", "/", map[string]string{"Token": exampleTokenA}, nil) 14 | tokenString, err := HeaderExtractor{"Token"}.ExtractToken(req) 15 | if err == nil { 16 | fmt.Println(tokenString) 17 | } else { 18 | fmt.Println(err) 19 | } 20 | //Output: A 21 | } 22 | 23 | func ExampleArgumentExtractor() { 24 | req := makeExampleRequest("GET", "/", nil, url.Values{"token": {extractorTestTokenA}}) 25 | tokenString, err := ArgumentExtractor{"token"}.ExtractToken(req) 26 | if err == nil { 27 | fmt.Println(tokenString) 28 | } else { 29 | fmt.Println(err) 30 | } 31 | //Output: A 32 | } 33 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/request/oauth2.go: -------------------------------------------------------------------------------- 1 | package request 2 | 3 | import ( 4 | "strings" 5 | ) 6 | 7 | // Strips 'Bearer ' prefix from bearer token string 8 | func stripBearerPrefixFromTokenString(tok string) (string, error) { 9 | // Should be a bearer token 10 | if len(tok) > 6 && strings.ToUpper(tok[0:7]) == "BEARER " { 11 | return tok[7:], nil 12 | } 13 | return tok, nil 14 | } 15 | 16 | // Extract bearer token from Authorization header 17 | // Uses PostExtractionFilter to strip "Bearer " prefix from header 18 | var AuthorizationHeaderExtractor = &PostExtractionFilter{ 19 | HeaderExtractor{"Authorization"}, 20 | stripBearerPrefixFromTokenString, 21 | } 22 | 23 | // Extractor for OAuth2 access tokens. Looks in 'Authorization' 24 | // header then 'access_token' argument for a token. 25 | var OAuth2Extractor = &MultiExtractor{ 26 | AuthorizationHeaderExtractor, 27 | ArgumentExtractor{"access_token"}, 28 | } 29 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/ec256-private.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIAh5qA3rmqQQuu0vbKV/+zouz/y/Iy2pLpIcWUSyImSwoAoGCCqGSM49 3 | AwEHoUQDQgAEYD54V/vp+54P9DXarYqx4MPcm+HKRIQzNasYSoRQHQ/6S6Ps8tpM 4 | cT+KvIIC8W/e9k0W7Cm72M1P9jU7SLf/vg== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/ec256-public.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYD54V/vp+54P9DXarYqx4MPcm+HK 3 | RIQzNasYSoRQHQ/6S6Ps8tpMcT+KvIIC8W/e9k0W7Cm72M1P9jU7SLf/vg== 4 | -----END PUBLIC KEY----- 5 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/ec384-private.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIGkAgEBBDCaCvMHKhcG/qT7xsNLYnDT7sE/D+TtWIol1ROdaK1a564vx5pHbsRy 3 | SEKcIxISi1igBwYFK4EEACKhZANiAATYa7rJaU7feLMqrAx6adZFNQOpaUH/Uylb 4 | ZLriOLON5YFVwtVUpO1FfEXZUIQpptRPtc5ixIPY658yhBSb6irfIJUSP9aYTflJ 5 | GKk/mDkK4t8mWBzhiD5B6jg9cEGhGgA= 6 | -----END EC PRIVATE KEY----- 7 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/ec384-public.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE2Gu6yWlO33izKqwMemnWRTUDqWlB/1Mp 3 | W2S64jizjeWBVcLVVKTtRXxF2VCEKabUT7XOYsSD2OufMoQUm+oq3yCVEj/WmE35 4 | SRipP5g5CuLfJlgc4Yg+Qeo4PXBBoRoA 5 | -----END PUBLIC KEY----- 6 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/ec512-private.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIHcAgEBBEIB0pE4uFaWRx7t03BsYlYvF1YvKaBGyvoakxnodm9ou0R9wC+sJAjH 3 | QZZJikOg4SwNqgQ/hyrOuDK2oAVHhgVGcYmgBwYFK4EEACOhgYkDgYYABAAJXIuw 4 | 12MUzpHggia9POBFYXSxaOGKGbMjIyDI+6q7wi7LMw3HgbaOmgIqFG72o8JBQwYN 5 | 4IbXHf+f86CRY1AA2wHzbHvt6IhkCXTNxBEffa1yMUgu8n9cKKF2iLgyQKcKqW33 6 | 8fGOw/n3Rm2Yd/EB56u2rnD29qS+nOM9eGS+gy39OQ== 7 | -----END EC PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/ec512-public.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQACVyLsNdjFM6R4IImvTzgRWF0sWjh 3 | ihmzIyMgyPuqu8IuyzMNx4G2jpoCKhRu9qPCQUMGDeCG1x3/n/OgkWNQANsB82x7 4 | 7eiIZAl0zcQRH32tcjFILvJ/XCihdoi4MkCnCqlt9/HxjsP590ZtmHfxAeertq5w 5 | 9vakvpzjPXhkvoMt/Tk= 6 | -----END PUBLIC KEY----- 7 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/helpers.go: -------------------------------------------------------------------------------- 1 | package test 2 | 3 | import ( 4 | "crypto/rsa" 5 | "github.com/dgrijalva/jwt-go" 6 | "io/ioutil" 7 | ) 8 | 9 | func LoadRSAPrivateKeyFromDisk(location string) *rsa.PrivateKey { 10 | keyData, e := ioutil.ReadFile(location) 11 | if e != nil { 12 | panic(e.Error()) 13 | } 14 | key, e := jwt.ParseRSAPrivateKeyFromPEM(keyData) 15 | if e != nil { 16 | panic(e.Error()) 17 | } 18 | return key 19 | } 20 | 21 | func LoadRSAPublicKeyFromDisk(location string) *rsa.PublicKey { 22 | keyData, e := ioutil.ReadFile(location) 23 | if e != nil { 24 | panic(e.Error()) 25 | } 26 | key, e := jwt.ParseRSAPublicKeyFromPEM(keyData) 27 | if e != nil { 28 | panic(e.Error()) 29 | } 30 | return key 31 | } 32 | 33 | func MakeSampleToken(c jwt.Claims, key interface{}) string { 34 | token := jwt.NewWithClaims(jwt.SigningMethodRS256, c) 35 | s, e := token.SignedString(key) 36 | 37 | if e != nil { 38 | panic(e.Error()) 39 | } 40 | 41 | return s 42 | } 43 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/hmacTestKey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/hmacTestKey -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/dgrijalva/jwt-go/test/sample_key.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4f5wg5l2hKsTeNem/V41 3 | fGnJm6gOdrj8ym3rFkEU/wT8RDtnSgFEZOQpHEgQ7JL38xUfU0Y3g6aYw9QT0hJ7 4 | mCpz9Er5qLaMXJwZxzHzAahlfA0icqabvJOMvQtzD6uQv6wPEyZtDTWiQi9AXwBp 5 | HssPnpYGIn20ZZuNlX2BrClciHhCPUIIZOQn/MmqTD31jSyjoQoV7MhhMTATKJx2 6 | XrHhR+1DcKJzQBSTAGnpYVaqpsARap+nwRipr3nUTuxyGohBTSmjJ2usSeQXHI3b 7 | ODIRe1AuTyHceAbewn8b462yEWKARdpd9AjQW5SIVPfdsz5B6GlYQ5LdYKtznTuy 8 | 7wIDAQAB 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Issue description 2 | Tell us what should happen and what happens instead 3 | 4 | ### Example code 5 | ```go 6 | If possible, please enter some example code here to reproduce the issue. 7 | ``` 8 | 9 | ### Error log 10 | ``` 11 | If you have an error log, please paste it here. 12 | ``` 13 | 14 | ### Configuration 15 | *Driver version (or git SHA):* 16 | 17 | *Go version:* run `go version` in your console 18 | 19 | *Server version:* E.g. MySQL 5.6, MariaDB 10.0.20 20 | 21 | *Server OS:* E.g. Debian 8.1 (Jessie), Windows 10 22 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | Please explain the changes you made here. 3 | 4 | ### Checklist 5 | - [ ] Code compiles correctly 6 | - [ ] Created tests which fail without the change (if possible) 7 | - [ ] All tests passing 8 | - [ ] Extended the README / documentation, if necessary 9 | - [ ] Added myself / the copyright holder to the AUTHORS file 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .DS_Store? 3 | ._* 4 | .Spotlight-V100 5 | .Trashes 6 | Icon? 7 | ehthumbs.db 8 | Thumbs.db 9 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: go 3 | go: 4 | - 1.2 5 | - 1.3 6 | - 1.4 7 | - 1.5 8 | - 1.6 9 | - 1.7 10 | - tip 11 | 12 | before_script: 13 | - mysql -e 'create database gotest;' 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/appengine.go: -------------------------------------------------------------------------------- 1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package 2 | // 3 | // Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file, 7 | // You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | // +build appengine 10 | 11 | package mysql 12 | 13 | import ( 14 | "appengine/cloudsql" 15 | ) 16 | 17 | func init() { 18 | RegisterDial("cloudsql", cloudsql.Dial) 19 | } 20 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/result.go: -------------------------------------------------------------------------------- 1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package 2 | // 3 | // Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file, 7 | // You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | package mysql 10 | 11 | type mysqlResult struct { 12 | affectedRows int64 13 | insertId int64 14 | } 15 | 16 | func (res *mysqlResult) LastInsertId() (int64, error) { 17 | return res.insertId, nil 18 | } 19 | 20 | func (res *mysqlResult) RowsAffected() (int64, error) { 21 | return res.affectedRows, nil 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/go-sql-driver/mysql/transaction.go: -------------------------------------------------------------------------------- 1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package 2 | // 3 | // Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file, 7 | // You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | package mysql 10 | 11 | type mysqlTx struct { 12 | mc *mysqlConn 13 | } 14 | 15 | func (tx *mysqlTx) Commit() (err error) { 16 | if tx.mc == nil || tx.mc.netConn == nil { 17 | return ErrInvalidConn 18 | } 19 | err = tx.mc.exec("COMMIT") 20 | tx.mc = nil 21 | return 22 | } 23 | 24 | func (tx *mysqlTx) Rollback() (err error) { 25 | if tx.mc == nil || tx.mc.netConn == nil { 26 | return ErrInvalidConn 27 | } 28 | err = tx.mc.exec("ROLLBACK") 29 | tx.mc = nil 30 | return 31 | } 32 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/gorilla/context/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | sudo: false 3 | 4 | matrix: 5 | include: 6 | - go: 1.3 7 | - go: 1.4 8 | - go: 1.5 9 | - go: 1.6 10 | - go: tip 11 | 12 | install: 13 | - go get golang.org/x/tools/cmd/vet 14 | 15 | script: 16 | - go get -t -v ./... 17 | - diff -u <(echo -n) <(gofmt -d .) 18 | - go tool vet . 19 | - go test -v -race ./... 20 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/gorilla/context/README.md: -------------------------------------------------------------------------------- 1 | context 2 | ======= 3 | [![Build Status](https://travis-ci.org/gorilla/context.png?branch=master)](https://travis-ci.org/gorilla/context) 4 | 5 | gorilla/context is a general purpose registry for global request variables. 6 | 7 | Read the full documentation here: http://www.gorillatoolkit.org/pkg/context 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/gorilla/securecookie/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | sudo: false 3 | 4 | matrix: 5 | include: 6 | - go: 1.3 7 | - go: 1.4 8 | - go: 1.5 9 | - go: 1.6 10 | - go: tip 11 | allow_failures: 12 | - go: tip 13 | 14 | script: 15 | - go get -t -v ./... 16 | - diff -u <(echo -n) <(gofmt -d .) 17 | - go vet $(go list ./... | grep -v /vendor/) 18 | - go test -v -race ./... 19 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/gorilla/securecookie/fuzz.go: -------------------------------------------------------------------------------- 1 | // +build gofuzz 2 | 3 | package securecookie 4 | 5 | var hashKey = []byte("very-secret12345") 6 | var blockKey = []byte("a-lot-secret1234") 7 | var s = New(hashKey, blockKey) 8 | 9 | type Cookie struct { 10 | B bool 11 | I int 12 | S string 13 | } 14 | 15 | func Fuzz(data []byte) int { 16 | datas := string(data) 17 | var c Cookie 18 | if err := s.Decode("fuzz", datas, &c); err != nil { 19 | return 0 20 | } 21 | if _, err := s.Encode("fuzz", c); err != nil { 22 | panic(err) 23 | } 24 | return 1 25 | } 26 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/gorilla/sessions/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | sudo: false 3 | 4 | matrix: 5 | include: 6 | - go: 1.3 7 | - go: 1.4 8 | - go: 1.5 9 | - go: 1.6 10 | - go: 1.7 11 | - go: tip 12 | allow_failures: 13 | - go: tip 14 | 15 | install: 16 | - # skip 17 | 18 | script: 19 | - go get -t -v ./... 20 | - diff -u <(echo -n) <(gofmt -d .) 21 | - go vet $(go list ./... | grep -v /vendor/) 22 | - go test -v -race ./... 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/jmoiron/sqlx/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | tags 24 | environ 25 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/jmoiron/sqlx/doc.go: -------------------------------------------------------------------------------- 1 | // Package sqlx provides general purpose extensions to database/sql. 2 | // 3 | // It is intended to seamlessly wrap database/sql and provide convenience 4 | // methods which are useful in the development of database driven applications. 5 | // None of the underlying database/sql methods are changed. Instead all extended 6 | // behavior is implemented through new methods defined on wrapper types. 7 | // 8 | // Additions include scanning into structs, named query support, rebinding 9 | // queries for different drivers, convenient shorthands for common error handling 10 | // and more. 11 | // 12 | package sqlx 13 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/jmoiron/sqlx/reflectx/README.md: -------------------------------------------------------------------------------- 1 | # reflectx 2 | 3 | The sqlx package has special reflect needs. In particular, it needs to: 4 | 5 | * be able to map a name to a field 6 | * understand embedded structs 7 | * understand mapping names to fields by a particular tag 8 | * user specified name -> field mapping functions 9 | 10 | These behaviors mimic the behaviors by the standard library marshallers and also the 11 | behavior of standard Go accessors. 12 | 13 | The first two are amply taken care of by `Reflect.Value.FieldByName`, and the third is 14 | addressed by `Reflect.Value.FieldByNameFunc`, but these don't quite understand struct 15 | tags in the ways that are vital to most marshallers, and they are slow. 16 | 17 | This reflectx package extends reflect to achieve these goals. 18 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/jmoiron/sqlx/types/README.md: -------------------------------------------------------------------------------- 1 | # types 2 | 3 | The types package provides some useful types which implement the `sql.Scanner` 4 | and `driver.Valuer` interfaces, suitable for use as scan and value targets with 5 | database/sql. 6 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | _test 3 | coverage.txt 4 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.8.x 4 | - 1.9.x 5 | - tip 6 | install: 7 | - make dependency 8 | script: 9 | - make test 10 | after_success: 11 | - bash <(curl -s https://codecov.io/bash) 12 | matrix: 13 | allow_failures: 14 | - go: tip 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/Makefile: -------------------------------------------------------------------------------- 1 | dependency: 2 | go get -u github.com/golang/dep/cmd/dep 3 | dep ensure 4 | 5 | test: 6 | echo "" > coverage.txt 7 | for d in $(shell go list ./... | grep -v vendor); do \ 8 | go test -race -coverprofile=profile.out -covermode=atomic $$d || exit 1; \ 9 | [ -f profile.out ] && cat profile.out >> coverage.txt && rm profile.out; \ 10 | done 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/casbin/auth_model.conf: -------------------------------------------------------------------------------- 1 | [request_definition] 2 | r = sub, obj, act 3 | 4 | [policy_definition] 5 | p = sub, obj, act 6 | 7 | [role_definition] 8 | g = _, _ 9 | 10 | [policy_effect] 11 | e = some(where (p.eft == allow)) 12 | 13 | [matchers] 14 | m = g(r.sub, p.sub) && keyMatch(r.obj, p.obj) && (r.act == p.act || p.act == "*") 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/casbin/auth_policy.csv: -------------------------------------------------------------------------------- 1 | p, alice, /dataset1/*, GET 2 | p, alice, /dataset1/resource1, POST 3 | p, bob, /dataset2/resource1, * 4 | p, bob, /dataset2/resource2, GET 5 | p, bob, /dataset2/folder1/*, POST 6 | p, dataset1_admin, /dataset1/*, * 7 | g, cathy, dataset1_admin 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/cube/cube_test.go: -------------------------------------------------------------------------------- 1 | package cube 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo-contrib/echo.go: -------------------------------------------------------------------------------- 1 | package echo 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig coding styles definitions. For more information about the 2 | # properties used in this file, please see the EditorConfig documentation: 3 | # http://editorconfig.org/ 4 | 5 | # indicate this is the root of the project 6 | root = true 7 | 8 | [*] 9 | charset = utf-8 10 | 11 | end_of_line = LF 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | 15 | indent_style = space 16 | indent_size = 2 17 | 18 | [Makefile] 19 | indent_style = tab 20 | 21 | [*.md] 22 | trim_trailing_whitespace = false 23 | 24 | [*.go] 25 | indent_style = tab 26 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/.gitattributes: -------------------------------------------------------------------------------- 1 | # Automatically normalize line endings for all text-based files 2 | # http://git-scm.com/docs/gitattributes#_end_of_line_conversion 3 | * text=auto 4 | 5 | # For the following file types, normalize line endings to LF on checking and 6 | # prevent conversion to CRLF when they are checked out (this is required in 7 | # order to prevent newline related issues) 8 | .* text eol=lf 9 | *.go text eol=lf 10 | *.yml text eol=lf 11 | *.html text eol=lf 12 | *.css text eol=lf 13 | *.js text eol=lf 14 | *.json text eol=lf 15 | LICENSE text eol=lf 16 | 17 | # Exclude `website` and `cookbook` from GitHub's language statistics 18 | # https://github.com/github/linguist#using-gitattributes 19 | cookbook/* linguist-documentation 20 | website/* linguist-documentation 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | /\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\ 2 | \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ 3 | 4 | Please use forum https://forum.labstack.com to ask questions! 5 | 6 | /\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\_/\ 7 | \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ 8 | 9 | ### Issue Description 10 | 11 | ### Checklist 12 | 13 | - [ ] Dependencies installed 14 | - [ ] No typos 15 | - [ ] Searched existing issues and docs 16 | 17 | ### Expected behaviour 18 | 19 | ### Actual behaviour 20 | 21 | ### Steps to reproduce 22 | 23 | ### Working code to debug 24 | 25 | ```go 26 | package main 27 | 28 | func main() { 29 | } 30 | ``` 31 | 32 | ### Version/commit 33 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | coverage.txt 3 | _test 4 | vendor 5 | .idea 6 | *.iml 7 | *.out 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.7.x 4 | - 1.8.x 5 | - tip 6 | install: 7 | - make dependency 8 | script: 9 | - make test 10 | after_success: 11 | - bash <(curl -s https://codecov.io/bash) 12 | matrix: 13 | allow_failures: 14 | - go: tip 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/Makefile: -------------------------------------------------------------------------------- 1 | dependency: 2 | go get -u github.com/golang/dep/cmd/dep 3 | dep ensure -update 4 | 5 | test: 6 | echo "" > coverage.txt 7 | for d in $(shell go list ./... | grep -v vendor); do \ 8 | go test -race -coverprofile=profile.out -covermode=atomic $$d || exit 1; \ 9 | [ -f profile.out ] && cat profile.out >> coverage.txt && rm profile.out; \ 10 | done 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/_fixture/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/go/src/isubata/vendor/github.com/labstack/echo/_fixture/favicon.ico -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/_fixture/folder/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Echo 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/_fixture/images/walle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/go/src/isubata/vendor/github.com/labstack/echo/_fixture/images/walle.png -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/_fixture/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Echo 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/echo_go1.8.go: -------------------------------------------------------------------------------- 1 | // +build go1.8 2 | 3 | package echo 4 | 5 | import ( 6 | stdContext "context" 7 | ) 8 | 9 | // Close immediately stops the server. 10 | // It internally calls `http.Server#Close()`. 11 | func (e *Echo) Close() error { 12 | if err := e.TLSServer.Close(); err != nil { 13 | return err 14 | } 15 | return e.Server.Close() 16 | } 17 | 18 | // Shutdown stops server the gracefully. 19 | // It internally calls `http.Server#Shutdown()`. 20 | func (e *Echo) Shutdown(ctx stdContext.Context) error { 21 | if err := e.TLSServer.Shutdown(ctx); err != nil { 22 | return err 23 | } 24 | return e.Server.Shutdown(ctx) 25 | } 26 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/echo_go1.8_test.go: -------------------------------------------------------------------------------- 1 | // +build go1.8 2 | 3 | package echo 4 | 5 | import ( 6 | "testing" 7 | "time" 8 | 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestEchoClose(t *testing.T) { 13 | e := New() 14 | errCh := make(chan error) 15 | 16 | go func() { 17 | errCh <- e.Start(":0") 18 | }() 19 | 20 | time.Sleep(200 * time.Millisecond) 21 | 22 | if err := e.Close(); err != nil { 23 | t.Fatal(err) 24 | } 25 | 26 | assert.NoError(t, e.Close()) 27 | 28 | err := <-errCh 29 | assert.Equal(t, err.Error(), "http: Server closed") 30 | } 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/middleware/middleware.go: -------------------------------------------------------------------------------- 1 | package middleware 2 | 3 | import "github.com/labstack/echo" 4 | 5 | type ( 6 | // Skipper defines a function to skip middleware. Returning true skips processing 7 | // the middleware. 8 | Skipper func(c echo.Context) bool 9 | ) 10 | 11 | // DefaultSkipper returns false which processes the middleware. 12 | func DefaultSkipper(echo.Context) bool { 13 | return false 14 | } 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/middleware/recover_test.go: -------------------------------------------------------------------------------- 1 | package middleware 2 | 3 | import ( 4 | "bytes" 5 | "net/http" 6 | "net/http/httptest" 7 | "testing" 8 | 9 | "github.com/labstack/echo" 10 | "github.com/stretchr/testify/assert" 11 | ) 12 | 13 | func TestRecover(t *testing.T) { 14 | e := echo.New() 15 | buf := new(bytes.Buffer) 16 | e.Logger.SetOutput(buf) 17 | req := httptest.NewRequest(echo.GET, "/", nil) 18 | rec := httptest.NewRecorder() 19 | c := e.NewContext(req, rec) 20 | h := Recover()(echo.HandlerFunc(func(c echo.Context) error { 21 | panic("test") 22 | })) 23 | h(c) 24 | assert.Equal(t, http.StatusInternalServerError, rec.Code) 25 | assert.Contains(t, buf.String(), "PANIC RECOVER") 26 | } 27 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/middleware/request_id_test.go: -------------------------------------------------------------------------------- 1 | package middleware 2 | 3 | import ( 4 | "net/http" 5 | "net/http/httptest" 6 | "testing" 7 | 8 | "github.com/labstack/echo" 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestRequestID(t *testing.T) { 13 | e := echo.New() 14 | req := httptest.NewRequest(echo.GET, "/", nil) 15 | rec := httptest.NewRecorder() 16 | c := e.NewContext(req, rec) 17 | handler := func(c echo.Context) error { 18 | return c.String(http.StatusOK, "test") 19 | } 20 | 21 | rid := RequestIDWithConfig(RequestIDConfig{}) 22 | h := rid(handler) 23 | h(c) 24 | assert.Len(t, rec.Header().Get(echo.HeaderXRequestID), 32) 25 | 26 | // Custom generator 27 | rid = RequestIDWithConfig(RequestIDConfig{ 28 | Generator: func() string { return "customGenerator" }, 29 | }) 30 | h = rid(handler) 31 | h(c) 32 | assert.Equal(t, rec.Header().Get(echo.HeaderXRequestID), "customGenerator") 33 | } 34 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/response_test.go: -------------------------------------------------------------------------------- 1 | package echo 2 | 3 | import ( 4 | "net/http/httptest" 5 | "testing" 6 | 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func TestResponse(t *testing.T) { 11 | e := New() 12 | req := httptest.NewRequest(GET, "/", nil) 13 | rec := httptest.NewRecorder() 14 | c := e.NewContext(req, rec) 15 | res := &Response{echo: e, Writer: rec} 16 | 17 | // Before 18 | res.Before(func() { 19 | c.Response().Header().Set(HeaderServer, "echo") 20 | }) 21 | res.Write([]byte("test")) 22 | assert.Equal(t, "echo", rec.Header().Get(HeaderServer)) 23 | } 24 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/util_go17.go: -------------------------------------------------------------------------------- 1 | // +build go1.7, !go1.8 2 | 3 | package echo 4 | 5 | import ( 6 | "net/url" 7 | ) 8 | 9 | // PathUnescape is wraps `url.QueryUnescape` 10 | func PathUnescape(s string) (string, error) { 11 | return url.QueryUnescape(s) 12 | } 13 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/echo/util_go18.go: -------------------------------------------------------------------------------- 1 | // +build go1.8 2 | 3 | package echo 4 | 5 | import "net/url" 6 | 7 | // PathUnescape is wraps `url.PathUnescape` 8 | func PathUnescape(s string) (string, error) { 9 | return url.PathUnescape(s) 10 | } 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.7.x 4 | - 1.8.x 5 | - tip 6 | before_install: 7 | - go get github.com/modocache/gover 8 | - go get github.com/mattn/goveralls 9 | - go get golang.org/x/tools/cmd/cover 10 | script: 11 | - go test -race ./... 12 | - go test -coverprofile=color.coverprofile ./color 13 | - go test -coverprofile=bytes.coverprofile ./bytes 14 | - go test -coverprofile=log.coverprofile ./log 15 | - go test -coverprofile=random.coverprofile ./random 16 | - gover 17 | - goveralls -coverprofile=gover.coverprofile -service=travis-ci 18 | matrix: 19 | allow_failures: 20 | - go: tip 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/README.md: -------------------------------------------------------------------------------- 1 | # Gommon [![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/labstack/gommon) [![Build Status](http://img.shields.io/travis/labstack/gommon.svg?style=flat-square)](https://travis-ci.org/labstack/gommon) [![Coverage Status](http://img.shields.io/coveralls/labstack/gommon.svg?style=flat-square)](https://coveralls.io/r/labstack/gommon) 2 | 3 | Common packages for Go 4 | - [Bytes](https://github.com/labstack/gommon/tree/master/bytes) - Format/parse bytes. 5 | - [Color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text. 6 | - [Log](https://github.com/labstack/gommon/tree/master/log) - Simple logging. 7 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/bytes/README.md: -------------------------------------------------------------------------------- 1 | # Bytes 2 | 3 | - Format bytes integer to human readable bytes string. 4 | - Parse human readable bytes string to bytes integer. 5 | 6 | ## Installation 7 | 8 | ```go 9 | go get github.com/labstack/gommon/bytes 10 | ``` 11 | 12 | ## [Usage](https://github.com/labstack/gommon/blob/master/bytes/bytes_test.go) 13 | 14 | ### Format 15 | 16 | ```go 17 | println(bytes.Format(13231323)) 18 | ``` 19 | 20 | `12.62MB` 21 | 22 | ### Parse 23 | 24 | ```go 25 | b, _ = Parse("2M") 26 | println(b) 27 | ``` 28 | 29 | `2097152` 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/email/email_test.go: -------------------------------------------------------------------------------- 1 | package email 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/glide.lock: -------------------------------------------------------------------------------- 1 | hash: bcc8372e328f52bdff7d94805509d05082dc1cffb53d7f5d764187b148bc0e31 2 | updated: 2016-11-17T11:50:51.708359983-08:00 3 | imports: 4 | - name: github.com/mattn/go-colorable 5 | version: ed8eb9e318d7a84ce5915b495b7d35e0cfe7b5a8 6 | - name: github.com/mattn/go-isatty 7 | version: 66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8 8 | - name: github.com/valyala/fasttemplate 9 | version: 3b874956e03f1636d171bda64b130f9135f42cff 10 | - name: golang.org/x/sys 11 | version: 8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9 12 | subpackages: 13 | - unix 14 | testImports: 15 | - name: github.com/davecgh/go-spew 16 | version: 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d 17 | subpackages: 18 | - spew 19 | - name: github.com/pmezard/go-difflib 20 | version: d8ed2627bdf02c080bf22230dbb337003b7aba2d 21 | subpackages: 22 | - difflib 23 | - name: github.com/stretchr/testify 24 | version: d77da356e56a7428ad25149ca77381849a6a5232 25 | subpackages: 26 | - assert 27 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/glide.yaml: -------------------------------------------------------------------------------- 1 | package: github.com/labstack/gommon 2 | import: 3 | - package: github.com/mattn/go-colorable 4 | - package: github.com/mattn/go-isatty 5 | - package: github.com/valyala/fasttemplate 6 | testImport: 7 | - package: github.com/stretchr/testify 8 | subpackages: 9 | - assert 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/gommon.go: -------------------------------------------------------------------------------- 1 | package gommon 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/log/README.md: -------------------------------------------------------------------------------- 1 | ## WORK IN PROGRESS 2 | 3 | ### Usage 4 | 5 | [log_test.go](log_test.go) 6 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/log/color.go: -------------------------------------------------------------------------------- 1 | // +build !appengine 2 | 3 | package log 4 | 5 | import ( 6 | "io" 7 | 8 | "github.com/mattn/go-colorable" 9 | ) 10 | 11 | func output() io.Writer { 12 | return colorable.NewColorableStdout() 13 | } 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/log/white.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package log 4 | 5 | import ( 6 | "io" 7 | "os" 8 | ) 9 | 10 | func output() io.Writer { 11 | return os.Stdout 12 | } 13 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/labstack/gommon/random/random_test.go: -------------------------------------------------------------------------------- 1 | package random 2 | 3 | import ( 4 | "regexp" 5 | "testing" 6 | 7 | "github.com/stretchr/testify/assert" 8 | ) 9 | 10 | func Test(t *testing.T) { 11 | assert.Len(t, String(32), 32) 12 | r := New() 13 | assert.Regexp(t, regexp.MustCompile("[0-9]+$"), r.String(8, Numeric)) 14 | } 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-colorable/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - tip 4 | 5 | before_install: 6 | - go get github.com/mattn/goveralls 7 | - go get golang.org/x/tools/cmd/cover 8 | script: 9 | - $HOME/gopath/bin/goveralls -repotoken xnXqRGwgW3SXIguzxf90ZSK1GPYZPaGrw 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "fmt" 6 | 7 | "github.com/mattn/go-colorable" 8 | ) 9 | 10 | func main() { 11 | stdOut := bufio.NewWriter(colorable.NewColorableStdout()) 12 | 13 | fmt.Fprint(stdOut, "\x1B[3GMove to 3rd Column\n") 14 | fmt.Fprint(stdOut, "\x1B[1;2HMove to 2nd Column on 1st Line\n") 15 | stdOut.Flush() 16 | } 17 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-colorable/_example/logrus/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/mattn/go-colorable" 5 | "github.com/sirupsen/logrus" 6 | ) 7 | 8 | func main() { 9 | logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true}) 10 | logrus.SetOutput(colorable.NewColorableStdout()) 11 | 12 | logrus.Info("succeeded") 13 | logrus.Warn("not correct") 14 | logrus.Error("something error") 15 | logrus.Fatal("panic") 16 | } 17 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-colorable/_example/title/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | . "github.com/mattn/go-colorable" 7 | ) 8 | 9 | func main() { 10 | out := NewColorableStdout() 11 | fmt.Fprint(out, "\x1B]0;TITLE Changed\007(See title and hit any key)") 12 | var c [1]byte 13 | os.Stdin.Read(c[:]) 14 | } 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-colorable/colorable_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package colorable 4 | 5 | import ( 6 | "io" 7 | "os" 8 | 9 | _ "github.com/mattn/go-isatty" 10 | ) 11 | 12 | // NewColorable return new instance of Writer which handle escape sequence. 13 | func NewColorable(file *os.File) io.Writer { 14 | if file == nil { 15 | panic("nil passed instead of *os.File to NewColorable()") 16 | } 17 | 18 | return file 19 | } 20 | 21 | // NewColorableStdout return new instance of Writer which handle escape sequence for stdout. 22 | func NewColorableStdout() io.Writer { 23 | return os.Stdout 24 | } 25 | 26 | // NewColorableStderr return new instance of Writer which handle escape sequence for stderr. 27 | func NewColorableStderr() io.Writer { 28 | return os.Stderr 29 | } 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-colorable/colorable_others.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | // +build !appengine 3 | 4 | package colorable 5 | 6 | import ( 7 | "io" 8 | "os" 9 | 10 | _ "github.com/mattn/go-isatty" 11 | ) 12 | 13 | // NewColorable return new instance of Writer which handle escape sequence. 14 | func NewColorable(file *os.File) io.Writer { 15 | if file == nil { 16 | panic("nil passed instead of *os.File to NewColorable()") 17 | } 18 | 19 | return file 20 | } 21 | 22 | // NewColorableStdout return new instance of Writer which handle escape sequence for stdout. 23 | func NewColorableStdout() io.Writer { 24 | return os.Stdout 25 | } 26 | 27 | // NewColorableStderr return new instance of Writer which handle escape sequence for stderr. 28 | func NewColorableStderr() io.Writer { 29 | return os.Stderr 30 | } 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - tip 4 | 5 | before_install: 6 | - go get github.com/mattn/goveralls 7 | - go get golang.org/x/tools/cmd/cover 8 | script: 9 | - $HOME/gopath/bin/goveralls -repotoken 3gHdORO5k5ziZcWMBxnd9LrMZaJs8m9x5 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/doc.go: -------------------------------------------------------------------------------- 1 | // Package isatty implements interface to isatty 2 | package isatty 3 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/example_test.go: -------------------------------------------------------------------------------- 1 | package isatty_test 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | 7 | "github.com/mattn/go-isatty" 8 | ) 9 | 10 | func Example() { 11 | if isatty.IsTerminal(os.Stdout.Fd()) { 12 | fmt.Println("Is Terminal") 13 | } else if isatty.IsCygwinTerminal(os.Stdout.Fd()) { 14 | fmt.Println("Is Cygwin/MSYS2 Terminal") 15 | } else { 16 | fmt.Println("Is Not Terminal") 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package isatty 4 | 5 | // IsTerminal returns true if the file descriptor is terminal which 6 | // is always false on on appengine classic which is a sandboxed PaaS. 7 | func IsTerminal(fd uintptr) bool { 8 | return false 9 | } 10 | 11 | // IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 12 | // terminal. This is also always false on this environment. 13 | func IsCygwinTerminal(fd uintptr) bool { 14 | return false 15 | } 16 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_bsd.go: -------------------------------------------------------------------------------- 1 | // +build darwin freebsd openbsd netbsd dragonfly 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | const ioctlReadTermios = syscall.TIOCGETA 12 | 13 | // IsTerminal return true if the file descriptor is terminal. 14 | func IsTerminal(fd uintptr) bool { 15 | var termios syscall.Termios 16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 17 | return err == 0 18 | } 19 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_linux.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | // +build !appengine,!ppc64,!ppc64le 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | const ioctlReadTermios = syscall.TCGETS 12 | 13 | // IsTerminal return true if the file descriptor is terminal. 14 | func IsTerminal(fd uintptr) bool { 15 | var termios syscall.Termios 16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 17 | return err == 0 18 | } 19 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_linux_ppc64x.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | // +build ppc64 ppc64le 3 | 4 | package isatty 5 | 6 | import ( 7 | "unsafe" 8 | 9 | syscall "golang.org/x/sys/unix" 10 | ) 11 | 12 | const ioctlReadTermios = syscall.TCGETS 13 | 14 | // IsTerminal return true if the file descriptor is terminal. 15 | func IsTerminal(fd uintptr) bool { 16 | var termios syscall.Termios 17 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 18 | return err == 0 19 | } 20 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_others.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | // IsCygwinTerminal() return true if the file descriptor is a cygwin or msys2 7 | // terminal. This is also always false on this environment. 8 | func IsCygwinTerminal(fd uintptr) bool { 9 | return false 10 | } 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_others_test.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package isatty 4 | 5 | import ( 6 | "os" 7 | "testing" 8 | ) 9 | 10 | func TestTerminal(t *testing.T) { 11 | // test for non-panic 12 | IsTerminal(os.Stdout.Fd()) 13 | } 14 | 15 | func TestCygwinPipeName(t *testing.T) { 16 | if IsCygwinTerminal(os.Stdout.Fd()) { 17 | t.Fatal("should be false always") 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/mattn/go-isatty/isatty_solaris.go: -------------------------------------------------------------------------------- 1 | // +build solaris 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "golang.org/x/sys/unix" 8 | ) 9 | 10 | // IsTerminal returns true if the given file descriptor is a terminal. 11 | // see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c 12 | func IsTerminal(fd uintptr) bool { 13 | var termio unix.Termio 14 | err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio) 15 | return err == nil 16 | } 17 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/valyala/bytebufferpool/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - 1.6 5 | 6 | script: 7 | # build test for supported platforms 8 | - GOOS=linux go build 9 | - GOOS=darwin go build 10 | - GOOS=freebsd go build 11 | - GOOS=windows go build 12 | - GOARCH=386 go build 13 | 14 | # run tests on a standard platform 15 | - go test -v ./... 16 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/valyala/bytebufferpool/bytebuffer_example_test.go: -------------------------------------------------------------------------------- 1 | package bytebufferpool_test 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/valyala/bytebufferpool" 7 | ) 8 | 9 | func ExampleByteBuffer() { 10 | bb := bytebufferpool.Get() 11 | 12 | bb.WriteString("first line\n") 13 | bb.Write([]byte("second line\n")) 14 | bb.B = append(bb.B, "third line\n"...) 15 | 16 | fmt.Printf("bytebuffer contents=%q", bb.B) 17 | 18 | // It is safe to release byte buffer now, since it is 19 | // no longer used. 20 | bytebufferpool.Put(bb) 21 | } 22 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/valyala/bytebufferpool/bytebuffer_timing_test.go: -------------------------------------------------------------------------------- 1 | package bytebufferpool 2 | 3 | import ( 4 | "bytes" 5 | "testing" 6 | ) 7 | 8 | func BenchmarkByteBufferWrite(b *testing.B) { 9 | s := []byte("foobarbaz") 10 | b.RunParallel(func(pb *testing.PB) { 11 | var buf ByteBuffer 12 | for pb.Next() { 13 | for i := 0; i < 100; i++ { 14 | buf.Write(s) 15 | } 16 | buf.Reset() 17 | } 18 | }) 19 | } 20 | 21 | func BenchmarkBytesBufferWrite(b *testing.B) { 22 | s := []byte("foobarbaz") 23 | b.RunParallel(func(pb *testing.PB) { 24 | var buf bytes.Buffer 25 | for pb.Next() { 26 | for i := 0; i < 100; i++ { 27 | buf.Write(s) 28 | } 29 | buf.Reset() 30 | } 31 | }) 32 | } 33 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/valyala/bytebufferpool/doc.go: -------------------------------------------------------------------------------- 1 | // Package bytebufferpool implements a pool of byte buffers 2 | // with anti-fragmentation protection. 3 | // 4 | // The pool may waste limited amount of memory due to fragmentation. 5 | // This amount equals to the maximum total size of the byte buffers 6 | // in concurrent use. 7 | package bytebufferpool 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/valyala/fasttemplate/unsafe.go: -------------------------------------------------------------------------------- 1 | // +build !appengine 2 | 3 | package fasttemplate 4 | 5 | import ( 6 | "reflect" 7 | "unsafe" 8 | ) 9 | 10 | func unsafeBytes2String(b []byte) string { 11 | return *(*string)(unsafe.Pointer(&b)) 12 | } 13 | 14 | func unsafeString2Bytes(s string) []byte { 15 | sh := (*reflect.StringHeader)(unsafe.Pointer(&s)) 16 | bh := reflect.SliceHeader{ 17 | Data: sh.Data, 18 | Len: sh.Len, 19 | Cap: sh.Len, 20 | } 21 | return *(*[]byte)(unsafe.Pointer(&bh)) 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/github.com/valyala/fasttemplate/unsafe_gae.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package fasttemplate 4 | 5 | func unsafeBytes2String(b []byte) string { 6 | return string(b) 7 | } 8 | 9 | func unsafeString2Bytes(s string) []byte { 10 | return []byte(s) 11 | } 12 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/.gitattributes: -------------------------------------------------------------------------------- 1 | # Treat all files in this repo as binary, with no git magic updating 2 | # line endings. Windows users contributing to Go will need to use a 3 | # modern version of git and editors capable of LF line endings. 4 | # 5 | # We'll prevent accidental CRLF line endings from entering the repo 6 | # via the git-review gofmt checks. 7 | # 8 | # See golang.org/issue/9281 9 | 10 | * -text 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/.gitignore: -------------------------------------------------------------------------------- 1 | # Add no patterns to .hgignore except for files generated by the build. 2 | last-change 3 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/AUTHORS: -------------------------------------------------------------------------------- 1 | # This source code refers to The Go Authors for copyright purposes. 2 | # The master list of authors is in the main Go distribution, 3 | # visible at https://tip.golang.org/AUTHORS. 4 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # This source code was written by the Go contributors. 2 | # The master list of contributors is in the main Go distribution, 3 | # visible at https://tip.golang.org/CONTRIBUTORS. 4 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/README.md: -------------------------------------------------------------------------------- 1 | # Go Cryptography 2 | 3 | This repository holds supplementary Go cryptography libraries. 4 | 5 | ## Download/Install 6 | 7 | The easiest way to install is to run `go get -u golang.org/x/crypto/...`. You 8 | can also manually git clone the repository to `$GOPATH/src/golang.org/x/crypto`. 9 | 10 | ## Report Issues / Send Patches 11 | 12 | This repository uses Gerrit for code changes. To learn how to submit changes to 13 | this repository, see https://golang.org/doc/contribute.html. 14 | 15 | The main issue tracker for the crypto repository is located at 16 | https://github.com/golang/go/issues. Prefix your issue with "x/crypto:" in the 17 | subject line, so it is easy to find. 18 | 19 | Note that contributions to the cryptography package receive additional scrutiny 20 | due to their sensitive nature. Patches may take longer than normal to receive 21 | feedback. 22 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/bcrypt/base64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package bcrypt 6 | 7 | import "encoding/base64" 8 | 9 | const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" 10 | 11 | var bcEncoding = base64.NewEncoding(alphabet) 12 | 13 | func base64Encode(src []byte) []byte { 14 | n := bcEncoding.EncodedLen(len(src)) 15 | dst := make([]byte, n) 16 | bcEncoding.Encode(dst, src) 17 | for dst[n-1] == '=' { 18 | n-- 19 | } 20 | return dst[:n] 21 | } 22 | 23 | func base64Decode(src []byte) ([]byte, error) { 24 | numOfEquals := 4 - (len(src) % 4) 25 | for i := 0; i < numOfEquals; i++ { 26 | src = append(src, '=') 27 | } 28 | 29 | dst := make([]byte, bcEncoding.DecodedLen(len(src))) 30 | n, err := bcEncoding.Decode(dst, src) 31 | if err != nil { 32 | return nil, err 33 | } 34 | return dst[:n], nil 35 | } 36 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/blake2b/blake2b_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !go1.7,amd64,!gccgo,!appengine 6 | 7 | package blake2b 8 | 9 | func init() { 10 | useSSE4 = supportsSSE4() 11 | } 12 | 13 | //go:noescape 14 | func supportsSSE4() bool 15 | 16 | //go:noescape 17 | func hashBlocksSSE4(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) 18 | 19 | func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { 20 | if useSSE4 { 21 | hashBlocksSSE4(h, c, flag, blocks) 22 | } else { 23 | hashBlocksGeneric(h, c, flag, blocks) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/blake2b/blake2b_ref.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64 appengine gccgo 6 | 7 | package blake2b 8 | 9 | func hashBlocks(h *[8]uint64, c *[2]uint64, flag uint64, blocks []byte) { 10 | hashBlocksGeneric(h, c, flag, blocks) 11 | } 12 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/blake2b/register.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.9 6 | 7 | package blake2b 8 | 9 | import ( 10 | "crypto" 11 | "hash" 12 | ) 13 | 14 | func init() { 15 | newHash256 := func() hash.Hash { 16 | h, _ := New256(nil) 17 | return h 18 | } 19 | newHash384 := func() hash.Hash { 20 | h, _ := New384(nil) 21 | return h 22 | } 23 | 24 | newHash512 := func() hash.Hash { 25 | h, _ := New512(nil) 26 | return h 27 | } 28 | 29 | crypto.RegisterHash(crypto.BLAKE2b_256, newHash256) 30 | crypto.RegisterHash(crypto.BLAKE2b_384, newHash384) 31 | crypto.RegisterHash(crypto.BLAKE2b_512, newHash512) 32 | } 33 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/blake2s/blake2s_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build 386,!gccgo,!appengine 6 | 7 | package blake2s 8 | 9 | var ( 10 | useSSE4 = false 11 | useSSSE3 = supportSSSE3() 12 | useSSE2 = supportSSE2() 13 | ) 14 | 15 | //go:noescape 16 | func supportSSE2() bool 17 | 18 | //go:noescape 19 | func supportSSSE3() bool 20 | 21 | //go:noescape 22 | func hashBlocksSSE2(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) 23 | 24 | //go:noescape 25 | func hashBlocksSSSE3(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) 26 | 27 | func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) { 28 | if useSSSE3 { 29 | hashBlocksSSSE3(h, c, flag, blocks) 30 | } else if useSSE2 { 31 | hashBlocksSSE2(h, c, flag, blocks) 32 | } else { 33 | hashBlocksGeneric(h, c, flag, blocks) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/blake2s/blake2s_ref.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64,!386 gccgo appengine 6 | 7 | package blake2s 8 | 9 | var ( 10 | useSSE4 = false 11 | useSSSE3 = false 12 | useSSE2 = false 13 | ) 14 | 15 | func hashBlocks(h *[8]uint32, c *[2]uint32, flag uint32, blocks []byte) { 16 | hashBlocksGeneric(h, c, flag, blocks) 17 | } 18 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/blake2s/register.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.9 6 | 7 | package blake2s 8 | 9 | import ( 10 | "crypto" 11 | "hash" 12 | ) 13 | 14 | func init() { 15 | newHash256 := func() hash.Hash { 16 | h, _ := New256(nil) 17 | return h 18 | } 19 | 20 | crypto.RegisterHash(crypto.BLAKE2s_256, newHash256) 21 | } 22 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64 !go1.7 gccgo appengine 6 | 7 | package chacha20poly1305 8 | 9 | func (c *chacha20poly1305) seal(dst, nonce, plaintext, additionalData []byte) []byte { 10 | return c.sealGeneric(dst, nonce, plaintext, additionalData) 11 | } 12 | 13 | func (c *chacha20poly1305) open(dst, nonce, ciphertext, additionalData []byte) ([]byte, error) { 14 | return c.openGeneric(dst, nonce, ciphertext, additionalData) 15 | } 16 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/codereview.cfg: -------------------------------------------------------------------------------- 1 | issuerepo: golang/go 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/curve25519/const_amd64.h: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This code was translated into a form compatible with 6a from the public 6 | // domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html 7 | 8 | #define REDMASK51 0x0007FFFFFFFFFFFF 9 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/curve25519/const_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This code was translated into a form compatible with 6a from the public 6 | // domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html 7 | 8 | // +build amd64,!gccgo,!appengine 9 | 10 | // These constants cannot be encoded in non-MOVQ immediates. 11 | // We access them directly from memory instead. 12 | 13 | DATA ·_121666_213(SB)/8, $996687872 14 | GLOBL ·_121666_213(SB), 8, $8 15 | 16 | DATA ·_2P0(SB)/8, $0xFFFFFFFFFFFDA 17 | GLOBL ·_2P0(SB), 8, $8 18 | 19 | DATA ·_2P1234(SB)/8, $0xFFFFFFFFFFFFE 20 | GLOBL ·_2P1234(SB), 8, $8 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/curve25519/curve25519_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package curve25519 6 | 7 | import ( 8 | "fmt" 9 | "testing" 10 | ) 11 | 12 | const expectedHex = "89161fde887b2b53de549af483940106ecc114d6982daa98256de23bdf77661a" 13 | 14 | func TestBaseScalarMult(t *testing.T) { 15 | var a, b [32]byte 16 | in := &a 17 | out := &b 18 | a[0] = 1 19 | 20 | for i := 0; i < 200; i++ { 21 | ScalarBaseMult(out, in) 22 | in, out = out, in 23 | } 24 | 25 | result := fmt.Sprintf("%x", in[:]) 26 | if result != expectedHex { 27 | t.Errorf("incorrect result: got %s, want %s", result, expectedHex) 28 | } 29 | } 30 | 31 | func BenchmarkScalarBaseMult(b *testing.B) { 32 | var in, out [32]byte 33 | in[0] = 1 34 | 35 | b.SetBytes(32) 36 | for i := 0; i < b.N; i++ { 37 | ScalarBaseMult(&out, &in) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/ed25519/testdata/sign.input.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/go/src/isubata/vendor/golang.org/x/crypto/ed25519/testdata/sign.input.gz -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/md4/example_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package md4_test 6 | 7 | import ( 8 | "fmt" 9 | "io" 10 | 11 | "golang.org/x/crypto/md4" 12 | ) 13 | 14 | func ExampleNew() { 15 | h := md4.New() 16 | data := "These pretzels are making me thirsty." 17 | io.WriteString(h, data) 18 | fmt.Printf("%x", h.Sum(nil)) 19 | // Output: 48c4e365090b30a32f084c4888deceaa 20 | } 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/pkcs12/errors.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package pkcs12 6 | 7 | import "errors" 8 | 9 | var ( 10 | // ErrDecryption represents a failure to decrypt the input. 11 | ErrDecryption = errors.New("pkcs12: decryption error, incorrect padding") 12 | 13 | // ErrIncorrectPassword is returned when an incorrect password is detected. 14 | // Usually, P12/PFX data is signed to be able to verify the password. 15 | ErrIncorrectPassword = errors.New("pkcs12: decryption password incorrect") 16 | ) 17 | 18 | // NotImplementedError indicates that the input is not currently supported. 19 | type NotImplementedError string 20 | 21 | func (e NotImplementedError) Error() string { 22 | return "pkcs12: " + string(e) 23 | } 24 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/pkcs12/internal/rc2/bench_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package rc2 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func BenchmarkEncrypt(b *testing.B) { 12 | r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) 13 | b.ResetTimer() 14 | var src [8]byte 15 | for i := 0; i < b.N; i++ { 16 | r.Encrypt(src[:], src[:]) 17 | } 18 | } 19 | 20 | func BenchmarkDecrypt(b *testing.B) { 21 | r, _ := New([]byte{0, 0, 0, 0, 0, 0, 0, 0}, 64) 22 | b.ResetTimer() 23 | var src [8]byte 24 | for i := 0; i < b.N; i++ { 25 | r.Decrypt(src[:], src[:]) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/poly1305/sum_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,!gccgo,!appengine 6 | 7 | package poly1305 8 | 9 | // This function is implemented in sum_amd64.s 10 | //go:noescape 11 | func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]byte) 12 | 13 | // Sum generates an authenticator for m using a one-time key and puts the 14 | // 16-byte result into out. Authenticating two different messages with the same 15 | // key allows an attacker to forge messages at will. 16 | func Sum(out *[16]byte, m []byte, key *[32]byte) { 17 | var mPtr *byte 18 | if len(m) > 0 { 19 | mPtr = &m[0] 20 | } 21 | poly1305(out, mPtr, uint64(len(m)), key) 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/poly1305/sum_arm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build arm,!gccgo,!appengine,!nacl 6 | 7 | package poly1305 8 | 9 | // This function is implemented in sum_arm.s 10 | //go:noescape 11 | func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]byte) 12 | 13 | // Sum generates an authenticator for m using a one-time key and puts the 14 | // 16-byte result into out. Authenticating two different messages with the same 15 | // key allows an attacker to forge messages at will. 16 | func Sum(out *[16]byte, m []byte, key *[32]byte) { 17 | var mPtr *byte 18 | if len(m) > 0 { 19 | mPtr = &m[0] 20 | } 21 | poly1305_auth_armv6(out, mPtr, uint32(len(m)), key) 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,!appengine,!gccgo 6 | 7 | package salsa 8 | 9 | // This function is implemented in salsa2020_amd64.s. 10 | 11 | //go:noescape 12 | 13 | func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) 14 | 15 | // XORKeyStream crypts bytes from in to out using the given key and counters. 16 | // In and out must overlap entirely or not at all. Counter 17 | // contains the raw salsa20 counter bytes (both nonce and block counter). 18 | func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { 19 | if len(in) == 0 { 20 | return 21 | } 22 | _ = out[len(in)-1] 23 | salsa2020XORKeyStream(&out[0], &in[0], uint64(len(in)), &counter[0], &key[0]) 24 | } 25 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/scrypt/example_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package scrypt_test 6 | 7 | import ( 8 | "encoding/base64" 9 | "fmt" 10 | "log" 11 | 12 | "golang.org/x/crypto/scrypt" 13 | ) 14 | 15 | func Example() { 16 | // DO NOT use this salt value; generate your own random salt. 8 bytes is 17 | // a good length. 18 | salt := []byte{0xc8, 0x28, 0xf2, 0x58, 0xa7, 0x6a, 0xad, 0x7b} 19 | 20 | dk, err := scrypt.Key([]byte("some password"), salt, 1<<15, 8, 1, 32) 21 | if err != nil { 22 | log.Fatal(err) 23 | } 24 | fmt.Println(base64.StdEncoding.EncodeToString(dk)) 25 | // Output: lGnMz8io0AUkfzn6Pls1qX20Vs7PGN6sbYQ2TQgY12M= 26 | } 27 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,!appengine,!gccgo 6 | 7 | package sha3 8 | 9 | // This function is implemented in keccakf_amd64.s. 10 | 11 | //go:noescape 12 | 13 | func keccakF1600(a *[25]uint64) 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/sha3/register.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.4 6 | 7 | package sha3 8 | 9 | import ( 10 | "crypto" 11 | ) 12 | 13 | func init() { 14 | crypto.RegisterHash(crypto.SHA3_224, New224) 15 | crypto.RegisterHash(crypto.SHA3_256, New256) 16 | crypto.RegisterHash(crypto.SHA3_384, New384) 17 | crypto.RegisterHash(crypto.SHA3_512, New512) 18 | } 19 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/go/src/isubata/vendor/golang.org/x/crypto/sha3/testdata/keccakKats.json.deflate -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/sha3/xor.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !amd64,!386,!ppc64le appengine 6 | 7 | package sha3 8 | 9 | var ( 10 | xorIn = xorInGeneric 11 | copyOut = copyOutGeneric 12 | xorInUnaligned = xorInGeneric 13 | copyOutUnaligned = copyOutGeneric 14 | ) 15 | 16 | const xorImplementationUnaligned = "generic" 17 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/sha3/xor_generic.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package sha3 6 | 7 | import "encoding/binary" 8 | 9 | // xorInGeneric xors the bytes in buf into the state; it 10 | // makes no non-portable assumptions about memory layout 11 | // or alignment. 12 | func xorInGeneric(d *state, buf []byte) { 13 | n := len(buf) / 8 14 | 15 | for i := 0; i < n; i++ { 16 | a := binary.LittleEndian.Uint64(buf) 17 | d.a[i] ^= a 18 | buf = buf[8:] 19 | } 20 | } 21 | 22 | // copyOutGeneric copies ulint64s to a byte buffer. 23 | func copyOutGeneric(d *state, b []byte) { 24 | for i := 0; len(b) >= 8; i++ { 25 | binary.LittleEndian.PutUint64(b, d.a[i]) 26 | b = b[8:] 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/ssh/tcpip_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package ssh 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func TestAutoPortListenBroken(t *testing.T) { 12 | broken := "SSH-2.0-OpenSSH_5.9hh11" 13 | works := "SSH-2.0-OpenSSH_6.1" 14 | if !isBrokenOpenSSHVersion(broken) { 15 | t.Errorf("version %q not marked as broken", broken) 16 | } 17 | if isBrokenOpenSSHVersion(works) { 18 | t.Errorf("version %q marked as broken", works) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/ssh/terminal/util_bsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd netbsd openbsd 6 | 7 | package terminal 8 | 9 | import "golang.org/x/sys/unix" 10 | 11 | const ioctlReadTermios = unix.TIOCGETA 12 | const ioctlWriteTermios = unix.TIOCSETA 13 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/ssh/terminal/util_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package terminal 6 | 7 | import "golang.org/x/sys/unix" 8 | 9 | const ioctlReadTermios = unix.TCGETS 10 | const ioctlWriteTermios = unix.TCSETS 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/ssh/test/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This package contains integration tests for the 6 | // golang.org/x/crypto/ssh package. 7 | package test // import "golang.org/x/crypto/ssh/test" 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/crypto/ssh/testdata/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // This package contains test data shared between the various subpackages of 6 | // the golang.org/x/crypto/ssh package. Under no circumstance should 7 | // this data be used for production code. 8 | package testdata // import "golang.org/x/crypto/ssh/testdata" 9 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/.gitattributes: -------------------------------------------------------------------------------- 1 | # Treat all files in this repo as binary, with no git magic updating 2 | # line endings. Windows users contributing to Go will need to use a 3 | # modern version of git and editors capable of LF line endings. 4 | # 5 | # We'll prevent accidental CRLF line endings from entering the repo 6 | # via the git-review gofmt checks. 7 | # 8 | # See golang.org/issue/9281 9 | 10 | * -text 11 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/.gitignore: -------------------------------------------------------------------------------- 1 | # Add no patterns to .hgignore except for files generated by the build. 2 | last-change 3 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/AUTHORS: -------------------------------------------------------------------------------- 1 | # This source code refers to The Go Authors for copyright purposes. 2 | # The master list of authors is in the main Go distribution, 3 | # visible at http://tip.golang.org/AUTHORS. 4 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # This source code was written by the Go contributors. 2 | # The master list of contributors is in the main Go distribution, 3 | # visible at http://tip.golang.org/CONTRIBUTORS. 4 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/README.md: -------------------------------------------------------------------------------- 1 | # sys 2 | 3 | This repository holds supplemental Go packages for low-level interactions with 4 | the operating system. 5 | 6 | ## Download/Install 7 | 8 | The easiest way to install is to run `go get -u golang.org/x/sys`. You can 9 | also manually git clone the repository to `$GOPATH/src/golang.org/x/sys`. 10 | 11 | ## Report Issues / Send Patches 12 | 13 | This repository uses Gerrit for code changes. To learn how to submit changes to 14 | this repository, see https://golang.org/doc/contribute.html. 15 | 16 | The main issue tracker for the sys repository is located at 17 | https://github.com/golang/go/issues. Prefix your issue with "x/sys:" in the 18 | subject line, so it is easy to find. 19 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/codereview.cfg: -------------------------------------------------------------------------------- 1 | issuerepo: golang/go 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/asm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #include "textflag.h" 6 | 7 | TEXT ·use(SB),NOSPLIT,$0 8 | RET 9 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/asm_plan9_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #include "textflag.h" 6 | 7 | // 8 | // System call support for 386, Plan 9 9 | // 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-32 15 | JMP syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-44 18 | JMP syscall·Syscall6(SB) 19 | 20 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 21 | JMP syscall·RawSyscall(SB) 22 | 23 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 24 | JMP syscall·RawSyscall6(SB) 25 | 26 | TEXT ·seek(SB),NOSPLIT,$0-36 27 | JMP syscall·seek(SB) 28 | 29 | TEXT ·exit(SB),NOSPLIT,$4-4 30 | JMP syscall·exit(SB) 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #include "textflag.h" 6 | 7 | // 8 | // System call support for amd64, Plan 9 9 | // 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-64 15 | JMP syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-88 18 | JMP syscall·Syscall6(SB) 19 | 20 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 21 | JMP syscall·RawSyscall(SB) 22 | 23 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 24 | JMP syscall·RawSyscall6(SB) 25 | 26 | TEXT ·seek(SB),NOSPLIT,$0-56 27 | JMP syscall·seek(SB) 28 | 29 | TEXT ·exit(SB),NOSPLIT,$8-8 30 | JMP syscall·exit(SB) 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/env_plan9.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Plan 9 environment variables. 6 | 7 | package plan9 8 | 9 | import ( 10 | "syscall" 11 | ) 12 | 13 | func Getenv(key string) (value string, found bool) { 14 | return syscall.Getenv(key) 15 | } 16 | 17 | func Setenv(key, value string) error { 18 | return syscall.Setenv(key, value) 19 | } 20 | 21 | func Clearenv() { 22 | syscall.Clearenv() 23 | } 24 | 25 | func Environ() []string { 26 | return syscall.Environ() 27 | } 28 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/env_unset.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.4 6 | 7 | package plan9 8 | 9 | import "syscall" 10 | 11 | func Unsetenv(key string) error { 12 | // This was added in Go 1.4. 13 | return syscall.Unsetenv(key) 14 | } 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Copyright 2009 The Go Authors. All rights reserved. 3 | # Use of this source code is governed by a BSD-style 4 | # license that can be found in the LICENSE file. 5 | 6 | COMMAND="mksysnum_plan9.sh $@" 7 | 8 | cat <= 10 { 16 | buf[i] = byte(val%10 + '0') 17 | i-- 18 | val /= 10 19 | } 20 | buf[i] = byte(val + '0') 21 | return string(buf[i:]) 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/plan9/syscall_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build plan9 6 | 7 | package plan9_test 8 | 9 | import ( 10 | "testing" 11 | 12 | "golang.org/x/sys/plan9" 13 | ) 14 | 15 | func testSetGetenv(t *testing.T, key, value string) { 16 | err := plan9.Setenv(key, value) 17 | if err != nil { 18 | t.Fatalf("Setenv failed to set %q: %v", value, err) 19 | } 20 | newvalue, found := plan9.Getenv(key) 21 | if !found { 22 | t.Fatalf("Getenv failed to find %v variable (want value %q)", key, value) 23 | } 24 | if newvalue != value { 25 | t.Fatalf("Getenv(%v) = %q; want %q", key, newvalue, value) 26 | } 27 | } 28 | 29 | func TestEnv(t *testing.T) { 30 | testSetGetenv(t, "TESTENV", "AVALUE") 31 | // make sure TESTENV gets set to "", not deleted 32 | testSetGetenv(t, "TESTENV", "") 33 | } 34 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/.gitignore: -------------------------------------------------------------------------------- 1 | _obj/ 2 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_darwin_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for 386, Darwin 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for AMD64, Darwin 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_darwin_arm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | // +build arm,darwin 7 | 8 | #include "textflag.h" 9 | 10 | // 11 | // System call support for ARM, Darwin 12 | // 13 | 14 | // Just jump to package syscall's implementation for all these functions. 15 | // The runtime may know about them. 16 | 17 | TEXT ·Syscall(SB),NOSPLIT,$0-28 18 | B syscall·Syscall(SB) 19 | 20 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 21 | B syscall·Syscall6(SB) 22 | 23 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 24 | B syscall·Syscall9(SB) 25 | 26 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 27 | B syscall·RawSyscall(SB) 28 | 29 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 30 | B syscall·RawSyscall6(SB) 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | // +build arm64,darwin 7 | 8 | #include "textflag.h" 9 | 10 | // 11 | // System call support for AMD64, Darwin 12 | // 13 | 14 | // Just jump to package syscall's implementation for all these functions. 15 | // The runtime may know about them. 16 | 17 | TEXT ·Syscall(SB),NOSPLIT,$0-56 18 | B syscall·Syscall(SB) 19 | 20 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 21 | B syscall·Syscall6(SB) 22 | 23 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 24 | B syscall·Syscall9(SB) 25 | 26 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 27 | B syscall·RawSyscall(SB) 28 | 29 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 30 | B syscall·RawSyscall6(SB) 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for AMD64, DragonFly 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-64 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-88 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-112 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-64 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-88 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_freebsd_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for 386, FreeBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for AMD64, FreeBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for ARM, FreeBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | B syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | B syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | B syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | B syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | B syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for 386, Linux 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 23 | JMP syscall·RawSyscall(SB) 24 | 25 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 26 | JMP syscall·RawSyscall6(SB) 27 | 28 | TEXT ·socketcall(SB),NOSPLIT,$0-36 29 | JMP syscall·socketcall(SB) 30 | 31 | TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 32 | JMP syscall·rawsocketcall(SB) 33 | 34 | TEXT ·seek(SB),NOSPLIT,$0-28 35 | JMP syscall·seek(SB) 36 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for AMD64, Linux 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 23 | JMP syscall·RawSyscall(SB) 24 | 25 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 26 | JMP syscall·RawSyscall6(SB) 27 | 28 | TEXT ·gettimeofday(SB),NOSPLIT,$0-16 29 | JMP syscall·gettimeofday(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_arm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for arm, Linux 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | B syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | B syscall·Syscall6(SB) 21 | 22 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 23 | B syscall·RawSyscall(SB) 24 | 25 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 26 | B syscall·RawSyscall6(SB) 27 | 28 | TEXT ·seek(SB),NOSPLIT,$0-32 29 | B syscall·seek(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_arm64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build linux 6 | // +build arm64 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-56 15 | B syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 18 | B syscall·Syscall6(SB) 19 | 20 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 21 | B syscall·RawSyscall(SB) 22 | 23 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 24 | B syscall·RawSyscall6(SB) 25 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build linux 6 | // +build mips64 mips64le 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // 12 | // System calls for mips64, Linux 13 | // 14 | 15 | // Just jump to package syscall's implementation for all these functions. 16 | // The runtime may know about them. 17 | 18 | TEXT ·Syscall(SB),NOSPLIT,$0-56 19 | JMP syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 22 | JMP syscall·Syscall6(SB) 23 | 24 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 25 | JMP syscall·RawSyscall(SB) 26 | 27 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 28 | JMP syscall·RawSyscall6(SB) 29 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build linux 6 | // +build mips mipsle 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // 12 | // System calls for mips, Linux 13 | // 14 | 15 | // Just jump to package syscall's implementation for all these functions. 16 | // The runtime may know about them. 17 | 18 | TEXT ·Syscall(SB),NOSPLIT,$0-28 19 | JMP syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 22 | JMP syscall·Syscall6(SB) 23 | 24 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 25 | JMP syscall·Syscall9(SB) 26 | 27 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 28 | JMP syscall·RawSyscall(SB) 29 | 30 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 31 | JMP syscall·RawSyscall6(SB) 32 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build linux 6 | // +build ppc64 ppc64le 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // 12 | // System calls for ppc64, Linux 13 | // 14 | 15 | // Just jump to package syscall's implementation for all these functions. 16 | // The runtime may know about them. 17 | 18 | TEXT ·Syscall(SB),NOSPLIT,$0-56 19 | BR syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 22 | BR syscall·Syscall6(SB) 23 | 24 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 25 | BR syscall·RawSyscall(SB) 26 | 27 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 28 | BR syscall·RawSyscall6(SB) 29 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_linux_s390x.s: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build s390x 6 | // +build linux 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // 12 | // System calls for s390x, Linux 13 | // 14 | 15 | // Just jump to package syscall's implementation for all these functions. 16 | // The runtime may know about them. 17 | 18 | TEXT ·Syscall(SB),NOSPLIT,$0-56 19 | BR syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 22 | BR syscall·Syscall6(SB) 23 | 24 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 25 | BR syscall·RawSyscall(SB) 26 | 27 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 28 | BR syscall·RawSyscall6(SB) 29 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_netbsd_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for 386, NetBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for AMD64, NetBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for ARM, NetBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | B syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | B syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | B syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | B syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | B syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_openbsd_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for 386, OpenBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for AMD64, OpenBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for ARM, OpenBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-28 17 | B syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 20 | B syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 23 | B syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 26 | B syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 29 | B syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !gccgo 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go 11 | // 12 | 13 | TEXT ·sysvicall6(SB),NOSPLIT,$0-88 14 | JMP syscall·sysvicall6(SB) 15 | 16 | TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 17 | JMP syscall·rawSysvicall6(SB) 18 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/bluetooth_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Bluetooth sockets and messages 6 | 7 | package unix 8 | 9 | // Bluetooth Protocols 10 | const ( 11 | BTPROTO_L2CAP = 0 12 | BTPROTO_HCI = 1 13 | BTPROTO_SCO = 2 14 | BTPROTO_RFCOMM = 3 15 | BTPROTO_BNEP = 4 16 | BTPROTO_CMTP = 5 17 | BTPROTO_HIDP = 6 18 | BTPROTO_AVDTP = 7 19 | ) 20 | 21 | const ( 22 | HCI_CHANNEL_RAW = 0 23 | HCI_CHANNEL_USER = 1 24 | HCI_CHANNEL_MONITOR = 2 25 | HCI_CHANNEL_CONTROL = 3 26 | ) 27 | 28 | // Socketoption Level 29 | const ( 30 | SOL_BLUETOOTH = 0x112 31 | SOL_HCI = 0x0 32 | SOL_L2CAP = 0x6 33 | SOL_RFCOMM = 0x12 34 | SOL_SCO = 0x11 35 | ) 36 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/constants.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd linux netbsd openbsd solaris 6 | 7 | package unix 8 | 9 | const ( 10 | R_OK = 0x4 11 | W_OK = 0x2 12 | X_OK = 0x1 13 | ) 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/dev_darwin.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Functions to access/create device major and minor numbers matching the 6 | // encoding used in Darwin's sys/types.h header. 7 | 8 | package unix 9 | 10 | // Major returns the major component of a Darwin device number. 11 | func Major(dev uint64) uint32 { 12 | return uint32((dev >> 24) & 0xff) 13 | } 14 | 15 | // Minor returns the minor component of a Darwin device number. 16 | func Minor(dev uint64) uint32 { 17 | return uint32(dev & 0xffffff) 18 | } 19 | 20 | // Mkdev returns a Darwin device number generated from the given major and minor 21 | // components. 22 | func Mkdev(major, minor uint32) uint64 { 23 | return (uint64(major) << 24) | uint64(minor) 24 | } 25 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/endian_big.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | // 5 | // +build ppc64 s390x mips mips64 6 | 7 | package unix 8 | 9 | const isBigEndian = true 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/endian_little.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | // 5 | // +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le 6 | 7 | package unix 8 | 9 | const isBigEndian = false 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/env_unix.go: -------------------------------------------------------------------------------- 1 | // Copyright 2010 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd linux netbsd openbsd solaris 6 | 7 | // Unix environment variables. 8 | 9 | package unix 10 | 11 | import "syscall" 12 | 13 | func Getenv(key string) (value string, found bool) { 14 | return syscall.Getenv(key) 15 | } 16 | 17 | func Setenv(key, value string) error { 18 | return syscall.Setenv(key, value) 19 | } 20 | 21 | func Clearenv() { 22 | syscall.Clearenv() 23 | } 24 | 25 | func Environ() []string { 26 | return syscall.Environ() 27 | } 28 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/env_unset.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.4 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | func Unsetenv(key string) error { 12 | // This was added in Go 1.4. 13 | return syscall.Unsetenv(key) 14 | } 15 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/export_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd linux netbsd openbsd solaris 6 | 7 | package unix 8 | 9 | var Itoa = itoa 10 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/file_unix.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package unix 6 | 7 | import ( 8 | "os" 9 | "syscall" 10 | ) 11 | 12 | // FIXME: unexported function from os 13 | // syscallMode returns the syscall-specific mode bits from Go's portable mode bits. 14 | func syscallMode(i os.FileMode) (o uint32) { 15 | o |= uint32(i.Perm()) 16 | if i&os.ModeSetuid != 0 { 17 | o |= syscall.S_ISUID 18 | } 19 | if i&os.ModeSetgid != 0 { 20 | o |= syscall.S_ISGID 21 | } 22 | if i&os.ModeSticky != 0 { 23 | o |= syscall.S_ISVTX 24 | } 25 | // No mapping for Go's ModeTemporary (plan9 only). 26 | return 27 | } 28 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/flock.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd linux netbsd openbsd 6 | 7 | package unix 8 | 9 | import "unsafe" 10 | 11 | // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux 12 | // systems by flock_linux_32bit.go to be SYS_FCNTL64. 13 | var fcntl64Syscall uintptr = SYS_FCNTL 14 | 15 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. 16 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { 17 | _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) 18 | if errno == 0 { 19 | return nil 20 | } 21 | return errno 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/flock_linux_32bit.go: -------------------------------------------------------------------------------- 1 | // +build linux,386 linux,arm linux,mips linux,mipsle 2 | 3 | // Copyright 2014 The Go Authors. All rights reserved. 4 | // Use of this source code is governed by a BSD-style 5 | // license that can be found in the LICENSE file. 6 | 7 | package unix 8 | 9 | func init() { 10 | // On 32-bit Linux systems, the fcntl syscall that matches Go's 11 | // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. 12 | fcntl64Syscall = SYS_FCNTL64 13 | } 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build gccgo,linux,amd64 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | //extern gettimeofday 12 | func realGettimeofday(*Timeval, *byte) int32 13 | 14 | func gettimeofday(tv *Timeval) (err syscall.Errno) { 15 | r := realGettimeofday(tv, nil) 16 | if r < 0 { 17 | return syscall.GetErrno() 18 | } 19 | return 0 20 | } 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | # Copyright 2009 The Go Authors. All rights reserved. 3 | # Use of this source code is governed by a BSD-style 4 | # license that can be found in the LICENSE file. 5 | # 6 | # Generate system call table for Darwin from sys/syscall.h 7 | 8 | use strict; 9 | 10 | if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") { 11 | print STDERR "GOARCH or GOOS not defined in environment\n"; 12 | exit 1; 13 | } 14 | 15 | my $command = "mksysnum_darwin.pl " . join(' ', @ARGV); 16 | 17 | print <){ 29 | if(/^#define\s+SYS_(\w+)\s+([0-9]+)/){ 30 | my $name = $1; 31 | my $num = $2; 32 | $name =~ y/a-z/A-Z/; 33 | print " SYS_$name = $num;" 34 | } 35 | } 36 | 37 | print <= 10 { 20 | buf[i] = byte(val%10 + '0') 21 | i-- 22 | val /= 10 23 | } 24 | buf[i] = byte(val + '0') 25 | return string(buf[i:]) 26 | } 27 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,linux 6 | // +build !gccgo 7 | 8 | package unix 9 | 10 | import "syscall" 11 | 12 | //go:noescape 13 | func gettimeofday(tv *Timeval) (err syscall.Errno) 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/syscall_no_getwd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build dragonfly freebsd netbsd openbsd 6 | 7 | package unix 8 | 9 | const ImplementsGetwd = false 10 | 11 | func Getwd() (string, error) { return "", ENOTSUP } 12 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/syscall_solaris_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build solaris 6 | 7 | package unix_test 8 | 9 | import ( 10 | "os/exec" 11 | "testing" 12 | 13 | "golang.org/x/sys/unix" 14 | ) 15 | 16 | func TestStatvfs(t *testing.T) { 17 | if err := unix.Statvfs("", nil); err == nil { 18 | t.Fatal(`Statvfs("") expected failure`) 19 | } 20 | 21 | statvfs := unix.Statvfs_t{} 22 | if err := unix.Statvfs("/", &statvfs); err != nil { 23 | t.Errorf(`Statvfs("/") failed: %v`, err) 24 | } 25 | 26 | if t.Failed() { 27 | mount, err := exec.Command("mount").CombinedOutput() 28 | if err != nil { 29 | t.Logf("mount: %v\n%s", err, mount) 30 | } else { 31 | t.Logf("mount: %s", mount) 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/syscall_unix_gc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin dragonfly freebsd linux netbsd openbsd solaris 6 | // +build !gccgo 7 | 8 | package unix 9 | 10 | import "syscall" 11 | 12 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) 13 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) 14 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) 15 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) 16 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,solaris 6 | 7 | package unix 8 | 9 | // TODO(aram): remove these before Go 1.3. 10 | const ( 11 | SYS_EXECVE = 59 12 | SYS_FCNTL = 62 13 | ) 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/asm_windows_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // 6 | // System calls for 386, Windows are implemented in runtime/syscall_windows.goc 7 | // 8 | 9 | TEXT ·getprocaddress(SB), 7, $0-8 10 | JMP syscall·getprocaddress(SB) 11 | 12 | TEXT ·loadlibrary(SB), 7, $0-4 13 | JMP syscall·loadlibrary(SB) 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/asm_windows_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // 6 | // System calls for amd64, Windows are implemented in runtime/syscall_windows.goc 7 | // 8 | 9 | TEXT ·getprocaddress(SB), 7, $0-32 10 | JMP syscall·getprocaddress(SB) 11 | 12 | TEXT ·loadlibrary(SB), 7, $0-8 13 | JMP syscall·loadlibrary(SB) 14 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/env_unset.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | // +build go1.4 7 | 8 | package windows 9 | 10 | import "syscall" 11 | 12 | func Unsetenv(key string) error { 13 | // This was added in Go 1.4. 14 | return syscall.Unsetenv(key) 15 | } 16 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/env_windows.go: -------------------------------------------------------------------------------- 1 | // Copyright 2010 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Windows environment variables. 6 | 7 | package windows 8 | 9 | import "syscall" 10 | 11 | func Getenv(key string) (value string, found bool) { 12 | return syscall.Getenv(key) 13 | } 14 | 15 | func Setenv(key, value string) error { 16 | return syscall.Setenv(key, value) 17 | } 18 | 19 | func Clearenv() { 20 | syscall.Clearenv() 21 | } 22 | 23 | func Environ() []string { 24 | return syscall.Environ() 25 | } 26 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/eventlog.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | 7 | package windows 8 | 9 | const ( 10 | EVENTLOG_SUCCESS = 0 11 | EVENTLOG_ERROR_TYPE = 1 12 | EVENTLOG_WARNING_TYPE = 2 13 | EVENTLOG_INFORMATION_TYPE = 4 14 | EVENTLOG_AUDIT_SUCCESS = 8 15 | EVENTLOG_AUDIT_FAILURE = 16 16 | ) 17 | 18 | //sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW 19 | //sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource 20 | //sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW 21 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/memory_windows.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | const ( 8 | MEM_COMMIT = 0x00001000 9 | MEM_RESERVE = 0x00002000 10 | MEM_DECOMMIT = 0x00004000 11 | MEM_RELEASE = 0x00008000 12 | MEM_RESET = 0x00080000 13 | MEM_TOP_DOWN = 0x00100000 14 | MEM_WRITE_WATCH = 0x00200000 15 | MEM_PHYSICAL = 0x00400000 16 | MEM_RESET_UNDO = 0x01000000 17 | MEM_LARGE_PAGES = 0x20000000 18 | 19 | PAGE_NOACCESS = 0x01 20 | PAGE_READONLY = 0x02 21 | PAGE_READWRITE = 0x04 22 | PAGE_WRITECOPY = 0x08 23 | PAGE_EXECUTE_READ = 0x20 24 | PAGE_EXECUTE_READWRITE = 0x40 25 | PAGE_EXECUTE_WRITECOPY = 0x80 26 | ) 27 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/mksyscall.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/race.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows,race 6 | 7 | package windows 8 | 9 | import ( 10 | "runtime" 11 | "unsafe" 12 | ) 13 | 14 | const raceenabled = true 15 | 16 | func raceAcquire(addr unsafe.Pointer) { 17 | runtime.RaceAcquire(addr) 18 | } 19 | 20 | func raceReleaseMerge(addr unsafe.Pointer) { 21 | runtime.RaceReleaseMerge(addr) 22 | } 23 | 24 | func raceReadRange(addr unsafe.Pointer, len int) { 25 | runtime.RaceReadRange(addr, len) 26 | } 27 | 28 | func raceWriteRange(addr unsafe.Pointer, len int) { 29 | runtime.RaceWriteRange(addr, len) 30 | } 31 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/race0.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows,!race 6 | 7 | package windows 8 | 9 | import ( 10 | "unsafe" 11 | ) 12 | 13 | const raceenabled = false 14 | 15 | func raceAcquire(addr unsafe.Pointer) { 16 | } 17 | 18 | func raceReleaseMerge(addr unsafe.Pointer) { 19 | } 20 | 21 | func raceReadRange(addr unsafe.Pointer, len int) { 22 | } 23 | 24 | func raceWriteRange(addr unsafe.Pointer, len int) { 25 | } 26 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/registry/export_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | 7 | package registry 8 | 9 | func (k Key) SetValue(name string, valtype uint32, data []byte) error { 10 | return k.setValue(name, valtype, data) 11 | } 12 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/registry/mksyscall.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package registry 6 | 7 | //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall.go 8 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/str.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | 7 | package windows 8 | 9 | func itoa(val int) string { // do it here rather than with fmt to avoid dependency 10 | if val < 0 { 11 | return "-" + itoa(-val) 12 | } 13 | var buf [32]byte // big enough for int64 14 | i := len(buf) - 1 15 | for val >= 10 { 16 | buf[i] = byte(val%10 + '0') 17 | i-- 18 | val /= 10 19 | } 20 | buf[i] = byte(val + '0') 21 | return string(buf[i:]) 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/svc/example/beep.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | 7 | package main 8 | 9 | import ( 10 | "syscall" 11 | ) 12 | 13 | // BUG(brainman): MessageBeep Windows api is broken on Windows 7, 14 | // so this example does not beep when runs as service on Windows 7. 15 | 16 | var ( 17 | beepFunc = syscall.MustLoadDLL("user32.dll").MustFindProc("MessageBeep") 18 | ) 19 | 20 | func beep() { 21 | beepFunc.Call(0xffffffff) 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/svc/go12.c: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | // +build !go1.3 7 | 8 | // copied from pkg/runtime 9 | typedef unsigned int uint32; 10 | typedef unsigned long long int uint64; 11 | #ifdef _64BIT 12 | typedef uint64 uintptr; 13 | #else 14 | typedef uint32 uintptr; 15 | #endif 16 | 17 | // from sys_386.s or sys_amd64.s 18 | void ·servicemain(void); 19 | 20 | void 21 | ·getServiceMain(uintptr *r) 22 | { 23 | *r = (uintptr)·servicemain; 24 | } 25 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/svc/go12.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | // +build !go1.3 7 | 8 | package svc 9 | 10 | // from go12.c 11 | func getServiceMain(r *uintptr) 12 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/syscall_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build windows 6 | 7 | package windows_test 8 | 9 | import ( 10 | "testing" 11 | 12 | "golang.org/x/sys/windows" 13 | ) 14 | 15 | func testSetGetenv(t *testing.T, key, value string) { 16 | err := windows.Setenv(key, value) 17 | if err != nil { 18 | t.Fatalf("Setenv failed to set %q: %v", value, err) 19 | } 20 | newvalue, found := windows.Getenv(key) 21 | if !found { 22 | t.Fatalf("Getenv failed to find %v variable (want value %q)", key, value) 23 | } 24 | if newvalue != value { 25 | t.Fatalf("Getenv(%v) = %q; want %q", key, newvalue, value) 26 | } 27 | } 28 | 29 | func TestEnv(t *testing.T) { 30 | testSetGetenv(t, "TESTENV", "AVALUE") 31 | // make sure TESTENV gets set to "", not deleted 32 | testSetGetenv(t, "TESTENV", "") 33 | } 34 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/types_windows_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | type WSAData struct { 8 | Version uint16 9 | HighVersion uint16 10 | Description [WSADESCRIPTION_LEN + 1]byte 11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte 12 | MaxSockets uint16 13 | MaxUdpDg uint16 14 | VendorInfo *byte 15 | } 16 | 17 | type Servent struct { 18 | Name *byte 19 | Aliases **byte 20 | Port uint16 21 | Proto *byte 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/vendor/golang.org/x/sys/windows/types_windows_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | type WSAData struct { 8 | Version uint16 9 | HighVersion uint16 10 | MaxSockets uint16 11 | MaxUdpDg uint16 12 | VendorInfo *byte 13 | Description [WSADESCRIPTION_LEN + 1]byte 14 | SystemStatus [WSASYS_STATUS_LEN + 1]byte 15 | } 16 | 17 | type Servent struct { 18 | Name *byte 19 | Aliases **byte 20 | Proto *byte 21 | Port uint16 22 | } 23 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/views/add_channel.html: -------------------------------------------------------------------------------- 1 | {{- define "add_channel" -}} 2 | {{- template "header" . -}} 3 |
4 |
5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 |
18 | {{- template "footer" . -}} 19 | {{- end -}} 20 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/views/channel.html: -------------------------------------------------------------------------------- 1 | {{- define "channel" -}} 2 | {{- template "header" . -}} 3 |
{{.Description}}
4 |
5 | {{ if .User -}} 6 |
7 |
8 |
9 | 10 | 11 |
12 |
13 |
14 | {{- end }} 15 | 16 | {{- template "footer" . -}} 17 | {{- end -}} 18 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/views/index.html: -------------------------------------------------------------------------------- 1 | {{- define "index" -}} 2 | {{- template "header" . -}} 3 |

ようこそ Isubata へ。

4 |

Isubata は世界最速のチャットアプリケーションです。

5 |

利用を開始するにはログインしてください。

6 |

アカウントをお持ちでない場合は新規登録してください。

7 | {{- template "footer" . -}} 8 | {{- end -}} 9 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/views/login.html: -------------------------------------------------------------------------------- 1 | {{- define "login" -}} 2 | {{- template "header" . -}} 3 |
4 |
5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 |
18 | {{- template "footer" . -}} 19 | {{- end -}} 20 | -------------------------------------------------------------------------------- /webapp/go/src/isubata/views/register.html: -------------------------------------------------------------------------------- 1 | {{- define "register" -}} 2 | {{- template "header" . -}} 3 |
4 |
5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 |
18 | {{- template "footer" . -}} 19 | {{- end -}} 20 | -------------------------------------------------------------------------------- /webapp/go/views: -------------------------------------------------------------------------------- 1 | src/isubata/views/ -------------------------------------------------------------------------------- /webapp/nodejs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /webapp/nodejs/.node-version: -------------------------------------------------------------------------------- 1 | v6.11.4 2 | -------------------------------------------------------------------------------- /webapp/nodejs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "isubata", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [ 11 | "ISUCON" 12 | ], 13 | "author": "Leko ", 14 | "license": "MIT", 15 | "dependencies": { 16 | "body-parser": "^1.18.2", 17 | "cookie-session": "^1.3.2", 18 | "ect": "^0.5.9", 19 | "es6-promisify": "^5.0.0", 20 | "express": "^4.16.1", 21 | "express-session": "^1.15.6", 22 | "multer": "^1.3.0", 23 | "mysql": "^2.14.1" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /webapp/nodejs/views/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/nodejs/views/.keep -------------------------------------------------------------------------------- /webapp/nodejs/views/add_channel.html: -------------------------------------------------------------------------------- 1 | <% extend "base.html" %> 2 | 3 |
4 |
5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 |
18 | -------------------------------------------------------------------------------- /webapp/nodejs/views/channel.html: -------------------------------------------------------------------------------- 1 | <% extend "base.html" %> 2 | 3 |
<%= @description %>
4 |
5 | 6 | 7 | 8 | <% if @req.userId : %> 9 |
10 |
11 |
12 | 13 | 14 |
15 |
16 |
17 | <% end %> 18 | 19 | 20 | -------------------------------------------------------------------------------- /webapp/nodejs/views/index.html: -------------------------------------------------------------------------------- 1 | <% extend "base.html" %> 2 | 3 |

ようこそ Isubata へ。

4 |

Isubata は世界最速のチャットアプリケーションです。

5 |

利用を開始するにはログインしてください。

6 |

アカウントをお持ちでない場合は新規登録してください。

7 | -------------------------------------------------------------------------------- /webapp/nodejs/views/login.html: -------------------------------------------------------------------------------- 1 | <% extend "base.html" %> 2 | 3 |
4 |
5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 |
18 | -------------------------------------------------------------------------------- /webapp/nodejs/views/register.html: -------------------------------------------------------------------------------- 1 | <% extend "base.html" %> 2 | 3 |
4 |
5 | 6 |
7 | 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 |
16 | 17 |
18 | -------------------------------------------------------------------------------- /webapp/perl/app.psgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env plackup 2 | 3 | use 5.26.1; 4 | use strict; 5 | use warnings; 6 | use utf8; 7 | 8 | use FindBin; 9 | use lib "$FindBin::Bin/lib"; 10 | use File::Basename; 11 | use Plack::Builder; 12 | use Isubata::Web; 13 | 14 | my $root_dir = File::Basename::dirname(__FILE__); 15 | my $app = Isubata::Web->psgi($root_dir); 16 | 17 | builder { 18 | enable 'Static', 19 | path => qr!^/(?:(?:css|js|fonts)/|favicon\.ico$)!, 20 | root => $root_dir . '/../public'; 21 | 22 | enable 'Session::Cookie', 23 | session_key => "session", 24 | secret => 'secretonymoris', 25 | httponly => 1, 26 | expires => 360000; 27 | 28 | $app; 29 | }; 30 | 31 | -------------------------------------------------------------------------------- /webapp/perl/cpanfile: -------------------------------------------------------------------------------- 1 | requires "Kossy"; 2 | requires "DBIx::Sunny"; 3 | requires "DBD::mysql"; 4 | requires "Plack::Middleware::Session::Cookie"; 5 | requires "DateTime::Format::MySQL"; 6 | requires "Starlet"; 7 | -------------------------------------------------------------------------------- /webapp/perl/views/add_channel.tx: -------------------------------------------------------------------------------- 1 | : cascade base 2 | : around content -> { 3 | 4 |
5 |
6 | 7 |
8 | 9 |
10 |
11 |
12 | 13 |
14 | 15 |
16 |
17 | 18 |
19 | 20 | : } 21 | -------------------------------------------------------------------------------- /webapp/perl/views/channel.tx: -------------------------------------------------------------------------------- 1 | : cascade base 2 | : around content -> { 3 | 4 |
<: $description :>
5 |
6 | 7 | : if defined $c.stash.user_id { 8 |
9 |
10 |
11 | 12 | 13 |
14 |
15 |
16 | : } 17 | 18 | 19 | 20 | : } 21 | -------------------------------------------------------------------------------- /webapp/perl/views/index.tx: -------------------------------------------------------------------------------- 1 | : cascade base 2 | : around content -> { 3 |

ようこそ Isubata へ。

4 |

Isubata は世界最速のチャットアプリケーションです。

5 |

利用を開始するにはログインしてください。

6 |

アカウントをお持ちでない場合は新規登録してください。

7 | : } 8 | -------------------------------------------------------------------------------- /webapp/perl/views/login.tx: -------------------------------------------------------------------------------- 1 | : cascade base 2 | 3 | : around content -> { 4 |
5 |
6 | 7 |
8 | 9 |
10 |
11 |
12 | 13 |
14 | 15 |
16 |
17 | 18 |
19 | : } 20 | -------------------------------------------------------------------------------- /webapp/perl/views/register.tx: -------------------------------------------------------------------------------- 1 | : cascade base 2 | : around content -> { 3 | 4 |
5 |
6 | 7 |
8 | 9 |
10 |
11 |
12 | 13 |
14 | 15 |
16 |
17 | 18 |
19 | 20 | : } 21 | -------------------------------------------------------------------------------- /webapp/php/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/php/README.md -------------------------------------------------------------------------------- /webapp/php/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "slim/slim": "^3.0", 4 | "slim/twig-view": "^2.1", 5 | "dflydev/fig-cookies": "^1.0" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /webapp/php/views/add_channel.twig: -------------------------------------------------------------------------------- 1 | {% extends "base.twig" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 |
20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/php/views/channel.twig: -------------------------------------------------------------------------------- 1 | {% extends "base.twig" %} 2 | 3 | {% block content %} 4 | 5 |
{{description}}
6 |
7 | 8 | {% if user %} 9 |
10 |
11 |
12 | 13 | 14 |
15 |
16 |
17 | {% endif %} 18 | 19 | 20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/php/views/index.twig: -------------------------------------------------------------------------------- 1 | {% extends "base.twig" %} 2 | 3 | {% block content %} 4 | 5 |

ようこそ Isubata へ。

6 |

Isubata は世界最速のチャットアプリケーションです。

7 |

利用を開始するにはログインしてください。

8 |

アカウントをお持ちでない場合は新規登録してください。

9 | 10 | {% endblock %} 11 | -------------------------------------------------------------------------------- /webapp/php/views/login.twig: -------------------------------------------------------------------------------- 1 | {% extends "base.twig" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 |
20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/php/views/register.twig: -------------------------------------------------------------------------------- 1 | {% extends "base.twig" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 |
20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/public/favicon.ico -------------------------------------------------------------------------------- /webapp/public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /webapp/public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /webapp/public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /webapp/public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KeenS/isucon7-qualify/a46a4d0ddc251d93d7004fe287d056d1b2d50259/webapp/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /webapp/python/requirements.txt: -------------------------------------------------------------------------------- 1 | Jinja2 2 | flask 3 | mysqlclient 4 | gunicorn 5 | -------------------------------------------------------------------------------- /webapp/python/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python3 -m venv venv 4 | ./venv/bin/pip install -r requirements.txt 5 | -------------------------------------------------------------------------------- /webapp/python/templates/add_channel.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 |
20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/python/templates/channel.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
{{description}}
6 |
7 | 8 | {% if request.user_id %} 9 |
10 |
11 |
12 | 13 | 14 |
15 |
16 |
17 | {% endif %} 18 | 19 | 20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/python/templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |

ようこそ Isubata へ。

6 |

Isubata は世界最速のチャットアプリケーションです。

7 |

利用を開始するにはログインしてください。

8 |

アカウントをお持ちでない場合は新規登録してください。

9 | 10 | {% endblock %} 11 | -------------------------------------------------------------------------------- /webapp/python/templates/login.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 |
20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/python/templates/register.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block content %} 4 | 5 |
6 |
7 | 8 |
9 | 10 |
11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | 19 |
20 | 21 | {% endblock %} 22 | -------------------------------------------------------------------------------- /webapp/ruby/.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle/ 2 | /vendor/bundle/ 3 | -------------------------------------------------------------------------------- /webapp/ruby/.ruby-version: -------------------------------------------------------------------------------- 1 | 2.4.2 2 | -------------------------------------------------------------------------------- /webapp/ruby/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'mysql2' 4 | gem 'puma' 5 | gem 'sinatra' 6 | gem 'sinatra-contrib' 7 | -------------------------------------------------------------------------------- /webapp/ruby/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | backports (3.9.1) 5 | multi_json (1.12.2) 6 | mustermann (1.0.1) 7 | mysql2 (0.4.9) 8 | puma (3.10.0) 9 | rack (2.0.3) 10 | rack-protection (2.0.0) 11 | rack 12 | sinatra (2.0.0) 13 | mustermann (~> 1.0) 14 | rack (~> 2.0) 15 | rack-protection (= 2.0.0) 16 | tilt (~> 2.0) 17 | sinatra-contrib (2.0.0) 18 | backports (>= 2.0) 19 | multi_json 20 | mustermann (~> 1.0) 21 | rack-protection (= 2.0.0) 22 | sinatra (= 2.0.0) 23 | tilt (>= 1.3, < 3) 24 | tilt (2.0.8) 25 | 26 | PLATFORMS 27 | ruby 28 | 29 | DEPENDENCIES 30 | mysql2 31 | puma 32 | sinatra 33 | sinatra-contrib 34 | 35 | BUNDLED WITH 36 | 1.13.7 37 | -------------------------------------------------------------------------------- /webapp/ruby/config.ru: -------------------------------------------------------------------------------- 1 | require './app' 2 | 3 | run App 4 | -------------------------------------------------------------------------------- /webapp/ruby/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | bundle install --path vendor/bundle 4 | -------------------------------------------------------------------------------- /webapp/ruby/views/add_channel.erb: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 |
7 |
8 |
9 | 10 |
11 | 12 |
13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /webapp/ruby/views/channel.erb: -------------------------------------------------------------------------------- 1 |
<%= @description %>
2 |
3 | 4 | <% if user %> 5 |
6 |
7 |
8 | 9 | 10 |
11 |
12 |
13 | <% end %> 14 | 15 | 16 | -------------------------------------------------------------------------------- /webapp/ruby/views/index.erb: -------------------------------------------------------------------------------- 1 |

ようこそ Isubata へ。

2 |

Isubata は世界最速のチャットアプリケーションです。

3 |

利用を開始するにはログインしてください。

4 |

アカウントをお持ちでない場合は新規登録してください。

5 | -------------------------------------------------------------------------------- /webapp/ruby/views/login.erb: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 |
7 |
8 |
9 | 10 |
11 | 12 |
13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /webapp/ruby/views/register.erb: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 |
7 |
8 |
9 | 10 |
11 | 12 |
13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /webapp/rust/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /webapp/rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "isubata" 3 | version = "0.1.0" 4 | authors = ["Sunrin SHIMURA (keen) <3han5chou7@gmail.com>"] 5 | 6 | [dependencies] 7 | mysql = "14.0.0" 8 | serde = "1.0.75" 9 | serde_derive = "1.0.75" 10 | handlebars = "1.0.3" 11 | serde_json = "1.0.26" 12 | failure = "0.1.2" 13 | actix-web = "0.7.4" 14 | futures = "0.1.23" 15 | chrono = {version = "0.4.6" , features = ["serde"]} 16 | rand = "0.5.5" 17 | sha-1 = "0.7.0" 18 | tempfile = "3.0.3" 19 | bytes = "0.4.9" 20 | env_logger = "0.5.13" 21 | log = "0.4.4" 22 | -------------------------------------------------------------------------------- /webapp/rust/README.md: -------------------------------------------------------------------------------- 1 | 処理系のインストール。1.28.0での動作を確認しているが恐らくそれ以上のstableコンパイラなら問題ないはず。 2 | 3 | ```sh 4 | curl https://sh.rustup.rs -sSf | sh -s -- -y 5 | source $HOME/.cargo/env 6 | ``` 7 | 8 | 実行 9 | 10 | 11 | ```rust 12 | cargo run --release 13 | ``` 14 | 15 | 16 | バイナリは `target/release/isubata` にある。 17 | -------------------------------------------------------------------------------- /webapp/rust/views/add_channel.tmpl: -------------------------------------------------------------------------------- 1 | {{#*inline "page"}} 2 |
3 |
4 | 5 |
6 | 7 |
8 |
9 |
10 | 11 |
12 | 13 |
14 |
15 | 16 |
17 | {{/inline}} 18 | {{~> layout~}} -------------------------------------------------------------------------------- /webapp/rust/views/channel.tmpl: -------------------------------------------------------------------------------- 1 | {{#*inline "page"}} 2 |
{{description}}
3 |
4 | 5 | {{# if user }} 6 |
7 |
8 |
9 | 10 | 11 |
12 |
13 |
14 | {{/if}} 15 | 16 | 17 | {{/inline}} 18 | {{~> layout~}} -------------------------------------------------------------------------------- /webapp/rust/views/index.tmpl: -------------------------------------------------------------------------------- 1 | {{#*inline "page"}} 2 |

ようこそ Isubata へ。

3 |

Isubata は世界最速のチャットアプリケーションです。

4 |

利用を開始するにはログインしてください。

5 |

アカウントをお持ちでない場合は新規登録してください。

6 | {{/inline}} 7 | {{~> layout ~}} -------------------------------------------------------------------------------- /webapp/rust/views/login.tmpl: -------------------------------------------------------------------------------- 1 | {{#*inline "page"}} 2 |
3 |
4 | 5 |
6 | 7 |
8 |
9 |
10 | 11 |
12 | 13 |
14 |
15 | 16 |
17 | {{/inline}} 18 | {{~> layout ~}} -------------------------------------------------------------------------------- /webapp/rust/views/register.tmpl: -------------------------------------------------------------------------------- 1 | {{#*inline "page"}} 2 |
3 |
4 | 5 |
6 | 7 |
8 |
9 |
10 | 11 |
12 | 13 |
14 |
15 | 16 |
17 | {{/inline}} 18 | {{~> layout ~}} 19 | --------------------------------------------------------------------------------