wayfarer 0.4.7 → 0.4.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (773) hide show
  1. checksums.yaml +4 -4
  2. data/.env +17 -0
  3. data/.github/workflows/lint.yaml +8 -6
  4. data/.github/workflows/release.yaml +2 -3
  5. data/.github/workflows/tests.yaml +5 -14
  6. data/.gitignore +2 -2
  7. data/.rubocop.yml +31 -0
  8. data/.vale.ini +6 -3
  9. data/Dockerfile +3 -2
  10. data/Gemfile +21 -0
  11. data/Gemfile.lock +233 -128
  12. data/Rakefile +7 -0
  13. data/docker-compose.yml +13 -14
  14. data/docs/guides/callbacks.md +3 -1
  15. data/docs/guides/configuration.md +10 -35
  16. data/docs/guides/development.md +67 -0
  17. data/docs/guides/handlers.md +7 -7
  18. data/docs/guides/jobs.md +54 -11
  19. data/docs/guides/networking/custom_adapters.md +109 -81
  20. data/docs/guides/networking/http.md +1 -1
  21. data/docs/guides/pages.md +24 -22
  22. data/docs/guides/routing.md +116 -34
  23. data/docs/guides/tasks.md +30 -10
  24. data/docs/guides/tutorial.md +23 -17
  25. data/docs/guides/user_agents.md +11 -9
  26. data/lib/wayfarer/base.rb +9 -8
  27. data/lib/wayfarer/batch_completion.rb +18 -14
  28. data/lib/wayfarer/callbacks.rb +14 -14
  29. data/lib/wayfarer/cli/route_printer.rb +78 -96
  30. data/lib/wayfarer/cli.rb +12 -30
  31. data/lib/wayfarer/gc.rb +6 -1
  32. data/lib/wayfarer/kv.rb +28 -0
  33. data/lib/wayfarer/middleware/base.rb +0 -4
  34. data/lib/wayfarer/middleware/chain.rb +7 -1
  35. data/lib/wayfarer/middleware/content_type.rb +20 -15
  36. data/lib/wayfarer/middleware/controller.rb +1 -1
  37. data/lib/wayfarer/middleware/dedup.rb +9 -3
  38. data/lib/wayfarer/middleware/dispatch.rb +7 -2
  39. data/lib/wayfarer/middleware/normalize.rb +4 -12
  40. data/lib/wayfarer/middleware/router.rb +1 -1
  41. data/lib/wayfarer/middleware/uri_parser.rb +4 -3
  42. data/lib/wayfarer/networking/context.rb +13 -2
  43. data/lib/wayfarer/networking/ferrum.rb +2 -5
  44. data/lib/wayfarer/networking/follow.rb +2 -1
  45. data/lib/wayfarer/networking/pool.rb +11 -12
  46. data/lib/wayfarer/networking/selenium.rb +15 -7
  47. data/lib/wayfarer/networking/strategy.rb +6 -2
  48. data/lib/wayfarer/page.rb +0 -2
  49. data/lib/wayfarer/parsing/xml.rb +1 -1
  50. data/lib/wayfarer/parsing.rb +2 -5
  51. data/lib/wayfarer/redis/barrier.rb +15 -2
  52. data/lib/wayfarer/redis/counter.rb +1 -2
  53. data/lib/wayfarer/routing/dsl.rb +166 -31
  54. data/lib/wayfarer/routing/hash_stack.rb +33 -0
  55. data/lib/wayfarer/routing/matchers/custom.rb +8 -5
  56. data/lib/wayfarer/routing/matchers/{suffix.rb → empty_params.rb} +2 -6
  57. data/lib/wayfarer/routing/matchers/host.rb +15 -9
  58. data/lib/wayfarer/routing/matchers/path.rb +11 -33
  59. data/lib/wayfarer/routing/matchers/query.rb +41 -17
  60. data/lib/wayfarer/routing/matchers/result.rb +12 -0
  61. data/lib/wayfarer/routing/matchers/scheme.rb +13 -5
  62. data/lib/wayfarer/routing/matchers/url.rb +13 -5
  63. data/lib/wayfarer/routing/path_consumer.rb +130 -0
  64. data/lib/wayfarer/routing/path_finder.rb +151 -23
  65. data/lib/wayfarer/routing/result.rb +1 -1
  66. data/lib/wayfarer/routing/root_route.rb +14 -2
  67. data/lib/wayfarer/routing/route.rb +71 -14
  68. data/lib/wayfarer/routing/serializable.rb +28 -0
  69. data/lib/wayfarer/routing/sub_route.rb +53 -0
  70. data/lib/wayfarer/routing/target_route.rb +17 -1
  71. data/lib/wayfarer/stringify.rb +1 -2
  72. data/lib/wayfarer/task.rb +3 -5
  73. data/lib/wayfarer/uri/normalization.rb +120 -0
  74. data/lib/wayfarer.rb +55 -10
  75. data/mise.toml +2 -0
  76. data/mkdocs.yml +8 -17
  77. data/rake/lint.rake +0 -96
  78. data/rake/release.rake +1 -13
  79. data/rake/tests.rake +8 -4
  80. data/requirements.txt +1 -1
  81. data/spec/factories/job.rb +8 -0
  82. data/spec/factories/middleware.rb +2 -2
  83. data/spec/factories/path_finder.rb +11 -0
  84. data/spec/factories/redis.rb +19 -0
  85. data/spec/factories/task.rb +39 -1
  86. data/spec/spec_helpers.rb +50 -57
  87. data/spec/support/active_job_helpers.rb +8 -0
  88. data/spec/support/integration_helpers.rb +21 -0
  89. data/spec/support/redis_helpers.rb +9 -0
  90. data/spec/support/test_app.rb +64 -43
  91. data/spec/{base_spec.rb → wayfarer/base_spec.rb} +32 -36
  92. data/spec/wayfarer/batch_completion_spec.rb +142 -0
  93. data/spec/wayfarer/cli/job_spec.rb +88 -0
  94. data/spec/wayfarer/cli/routing_spec.rb +322 -0
  95. data/spec/{cli → wayfarer/cli}/version_spec.rb +1 -1
  96. data/spec/wayfarer/gc_spec.rb +29 -0
  97. data/spec/{handler_spec.rb → wayfarer/handler_spec.rb} +1 -3
  98. data/spec/{integration → wayfarer/integration}/callbacks_spec.rb +9 -6
  99. data/spec/wayfarer/integration/content_type_spec.rb +37 -0
  100. data/spec/wayfarer/integration/custom_routing_spec.rb +51 -0
  101. data/spec/{integration → wayfarer/integration}/gc_spec.rb +9 -13
  102. data/spec/{integration → wayfarer/integration}/handler_spec.rb +9 -10
  103. data/spec/{integration → wayfarer/integration}/page_spec.rb +16 -14
  104. data/spec/{integration → wayfarer/integration}/params_spec.rb +4 -4
  105. data/spec/{integration → wayfarer/integration}/parsing_spec.rb +7 -32
  106. data/spec/wayfarer/integration/retry_spec.rb +112 -0
  107. data/spec/{integration → wayfarer/integration}/stage_spec.rb +6 -6
  108. data/spec/{middleware → wayfarer/middleware}/batch_completion_spec.rb +4 -5
  109. data/spec/{middleware → wayfarer/middleware}/chain_spec.rb +20 -15
  110. data/spec/{middleware → wayfarer/middleware}/content_type_spec.rb +18 -21
  111. data/spec/{middleware → wayfarer/middleware}/controller_spec.rb +25 -24
  112. data/spec/wayfarer/middleware/dedup_spec.rb +66 -0
  113. data/spec/wayfarer/middleware/normalize_spec.rb +32 -0
  114. data/spec/{middleware → wayfarer/middleware}/router_spec.rb +18 -20
  115. data/spec/{middleware → wayfarer/middleware}/stage_spec.rb +11 -10
  116. data/spec/wayfarer/middleware/uri_parser_spec.rb +63 -0
  117. data/spec/{middleware → wayfarer/middleware}/user_agent_spec.rb +34 -32
  118. data/spec/wayfarer/networking/capybara_spec.rb +13 -0
  119. data/spec/{networking → wayfarer/networking}/context_spec.rb +47 -38
  120. data/spec/wayfarer/networking/ferrum_spec.rb +13 -0
  121. data/spec/{networking → wayfarer/networking}/follow_spec.rb +9 -4
  122. data/spec/wayfarer/networking/http_spec.rb +12 -0
  123. data/spec/{networking → wayfarer/networking}/pool_spec.rb +11 -9
  124. data/spec/wayfarer/networking/selenium_spec.rb +12 -0
  125. data/spec/{networking → wayfarer/networking}/strategy.rb +35 -56
  126. data/spec/{page_spec.rb → wayfarer/page_spec.rb} +3 -3
  127. data/spec/{parsing → wayfarer/parsing}/json_spec.rb +1 -1
  128. data/spec/{parsing/xml_spec.rb → wayfarer/parsing/xml_parse_spec.rb} +4 -3
  129. data/spec/{redis → wayfarer/redis}/barrier_spec.rb +5 -4
  130. data/spec/wayfarer/redis/counter_spec.rb +34 -0
  131. data/spec/{redis → wayfarer/redis}/pool_spec.rb +3 -2
  132. data/spec/{routing → wayfarer/routing}/dsl_spec.rb +12 -22
  133. data/spec/wayfarer/routing/hash_stack_spec.rb +63 -0
  134. data/spec/wayfarer/routing/integration_spec.rb +101 -0
  135. data/spec/wayfarer/routing/matchers/custom_spec.rb +39 -0
  136. data/spec/wayfarer/routing/matchers/host_spec.rb +56 -0
  137. data/spec/wayfarer/routing/matchers/matcher.rb +17 -0
  138. data/spec/wayfarer/routing/matchers/path_spec.rb +43 -0
  139. data/spec/wayfarer/routing/matchers/query_spec.rb +123 -0
  140. data/spec/wayfarer/routing/matchers/scheme_spec.rb +45 -0
  141. data/spec/wayfarer/routing/matchers/url_spec.rb +33 -0
  142. data/spec/wayfarer/routing/path_consumer_spec.rb +123 -0
  143. data/spec/wayfarer/routing/path_finder_spec.rb +409 -0
  144. data/spec/wayfarer/routing/root_route_spec.rb +51 -0
  145. data/spec/wayfarer/routing/route_spec.rb +74 -0
  146. data/spec/wayfarer/routing/sub_route_spec.rb +103 -0
  147. data/spec/wayfarer/uri/normalization_spec.rb +98 -0
  148. data/spec/wayfarer_spec.rb +2 -2
  149. data/wayfarer.gemspec +17 -28
  150. metadata +183 -832
  151. data/.rbenv-gemsets +0 -1
  152. data/.ruby-version +0 -1
  153. data/RELEASING.md +0 -17
  154. data/docs/cookbook/user_agent.md +0 -7
  155. data/docs/design.md +0 -36
  156. data/docs/guides/jobs/error_handling.md +0 -40
  157. data/docs/reference/configuration.md +0 -36
  158. data/lib/wayfarer/middleware/lazy.rb +0 -11
  159. data/spec/batch_completion_spec.rb +0 -104
  160. data/spec/cli/job_spec.rb +0 -74
  161. data/spec/cli/routing_spec.rb +0 -101
  162. data/spec/fixtures/dummy_job.rb +0 -9
  163. data/spec/gc_spec.rb +0 -17
  164. data/spec/integration/content_type_spec.rb +0 -145
  165. data/spec/integration/routing_spec.rb +0 -18
  166. data/spec/middleware/dedup_spec.rb +0 -71
  167. data/spec/middleware/dispatch_spec.rb +0 -59
  168. data/spec/middleware/normalize_spec.rb +0 -60
  169. data/spec/middleware/uri_parser_spec.rb +0 -53
  170. data/spec/networking/capybara_spec.rb +0 -12
  171. data/spec/networking/ferrum_spec.rb +0 -12
  172. data/spec/networking/http_spec.rb +0 -12
  173. data/spec/networking/selenium_spec.rb +0 -12
  174. data/spec/redis/counter_spec.rb +0 -44
  175. data/spec/routing/integration_spec.rb +0 -110
  176. data/spec/routing/matchers/custom_spec.rb +0 -31
  177. data/spec/routing/matchers/host_spec.rb +0 -49
  178. data/spec/routing/matchers/path_spec.rb +0 -43
  179. data/spec/routing/matchers/query_spec.rb +0 -137
  180. data/spec/routing/matchers/scheme_spec.rb +0 -25
  181. data/spec/routing/matchers/suffix_spec.rb +0 -41
  182. data/spec/routing/matchers/uri_spec.rb +0 -27
  183. data/spec/routing/path_finder_spec.rb +0 -33
  184. data/spec/routing/root_route_spec.rb +0 -29
  185. data/spec/routing/route_spec.rb +0 -43
  186. data/spec/support/static/git-scm.com/assets/application-38b0d42ff05ffea45841edebbd14b75b89585646153808e82907c2c5c11f324b.js +0 -772
  187. data/spec/support/static/git-scm.com/assets/application-cafcf280f67db0e6d8168ba98a38da878769a9d5f37793b68ffb963a02d185e0.css +0 -1
  188. data/spec/support/static/git-scm.com/assets/modernize-b3ebe0c31c24f230dc62179d3e1030d2e57a53b1668d9382c0a27dbd44a94beb.js +0 -20
  189. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Bash.html +0 -751
  190. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-PowerShell.html +0 -804
  191. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Sublime-Text.html +0 -728
  192. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio-Code.html +0 -751
  193. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Visual-Studio.html +0 -740
  194. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh.html +0 -765
  195. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Graphical-Interfaces.html +0 -931
  196. data/spec/support/static/git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Summary.html +0 -702
  197. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git.html +0 -720
  198. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Dulwich.html +0 -746
  199. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-JGit.html +0 -889
  200. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-Libgit2.html +0 -1003
  201. data/spec/support/static/git-scm.com/book/en/v2/Appendix-B:-Embedding-Git-in-your-Applications-go-git.html +0 -792
  202. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Administration.html +0 -745
  203. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Basic-Snapshotting.html +0 -840
  204. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Branching-and-Merging.html +0 -829
  205. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Debugging.html +0 -731
  206. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Email.html +0 -766
  207. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-External-Systems.html +0 -721
  208. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Getting-and-Creating-Projects.html +0 -746
  209. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Inspection-and-Comparison.html +0 -735
  210. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Patching.html +0 -742
  211. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Plumbing-Commands.html +0 -715
  212. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Setup-and-Config.html +0 -863
  213. data/spec/support/static/git-scm.com/book/en/v2/Appendix-C:-Git-Commands-Sharing-and-Updating-Projects.html +0 -802
  214. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy.html +0 -1200
  215. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Attributes.html +0 -1134
  216. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Configuration.html +0 -1315
  217. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Git-Hooks.html +0 -876
  218. data/spec/support/static/git-scm.com/book/en/v2/Customizing-Git-Summary.html +0 -704
  219. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project.html +0 -1667
  220. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows.html +0 -859
  221. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project.html +0 -1354
  222. data/spec/support/static/git-scm.com/book/en/v2/Distributed-Git-Summary.html +0 -704
  223. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-A-Short-History-of-Git.html +0 -735
  224. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-About-Version-Control.html +0 -783
  225. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup.html +0 -889
  226. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Getting-Help.html +0 -750
  227. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Installing-Git.html +0 -879
  228. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-Summary.html +0 -704
  229. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-The-Command-Line.html +0 -711
  230. data/spec/support/static/git-scm.com/book/en/v2/Getting-Started-What-is-Git?.html +0 -857
  231. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository.html +0 -816
  232. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Git-Aliases.html +0 -775
  233. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository.html +0 -1432
  234. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Summary.html +0 -703
  235. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Tagging.html +0 -1049
  236. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Undoing-Things.html +0 -998
  237. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History.html +0 -1172
  238. data/spec/support/static/git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes.html +0 -983
  239. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging.html +0 -1102
  240. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branch-Management.html +0 -946
  241. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell.html +0 -1020
  242. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Branching-Workflows.html +0 -786
  243. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Rebasing.html +0 -1028
  244. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Remote-Branches.html +0 -1009
  245. data/spec/support/static/git-scm.com/book/en/v2/Git-Branching-Summary.html +0 -705
  246. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Environment-Variables.html +0 -1009
  247. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Git-Objects.html +0 -1209
  248. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Git-References.html +0 -939
  249. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Maintenance-and-Data-Recovery.html +0 -1086
  250. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Packfiles.html +0 -876
  251. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain.html +0 -745
  252. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Summary.html +0 -708
  253. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-The-Refspec.html +0 -872
  254. data/spec/support/static/git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols.html +0 -1043
  255. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Advanced-Merging.html +0 -1605
  256. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Bundling.html +0 -888
  257. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Credential-Storage.html +0 -1035
  258. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git.html +0 -861
  259. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Interactive-Staging.html +0 -920
  260. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Replace.html +0 -949
  261. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Rerere.html +0 -983
  262. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Reset-Demystified.html +0 -1236
  263. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Revision-Selection.html +0 -1178
  264. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Rewriting-History.html +0 -1182
  265. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Searching.html +0 -875
  266. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work.html +0 -922
  267. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Stashing-and-Cleaning.html +0 -1039
  268. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Submodules.html +0 -1864
  269. data/spec/support/static/git-scm.com/book/en/v2/Git-Tools-Summary.html +0 -705
  270. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Git-as-a-Client.html +0 -2656
  271. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git.html +0 -1741
  272. data/spec/support/static/git-scm.com/book/en/v2/Git-and-Other-Systems-Summary.html +0 -703
  273. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key.html +0 -759
  274. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server.html +0 -827
  275. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Git-Daemon.html +0 -775
  276. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-GitLab.html +0 -872
  277. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-GitWeb.html +0 -776
  278. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server.html +0 -870
  279. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Smart-HTTP.html +0 -789
  280. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Summary.html +0 -709
  281. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols.html +0 -963
  282. data/spec/support/static/git-scm.com/book/en/v2/Git-on-the-Server-Third-Party-Hosted-Options.html +0 -711
  283. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Account-Setup-and-Configuration.html +0 -858
  284. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project.html +0 -1502
  285. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Maintaining-a-Project.html +0 -1218
  286. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Managing-an-organization.html +0 -797
  287. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Scripting-GitHub.html +0 -1059
  288. data/spec/support/static/git-scm.com/book/en/v2/GitHub-Summary.html +0 -704
  289. data/spec/support/static/git-scm.com/book/en/v2/ch00/_abort_merge.html +0 -1605
  290. data/spec/support/static/git-scm.com/book/en/v2/ch00/_add_email_addresses.html +0 -858
  291. data/spec/support/static/git-scm.com/book/en/v2/ch00/_advanced_merging.html +0 -1605
  292. data/spec/support/static/git-scm.com/book/en/v2/ch00/_an_example_git_enforced_policy.html +0 -1200
  293. data/spec/support/static/git-scm.com/book/en/v2/ch00/_annotated_tags.html +0 -1049
  294. data/spec/support/static/git-scm.com/book/en/v2/ch00/_api_comment.html +0 -1059
  295. data/spec/support/static/git-scm.com/book/en/v2/ch00/_bare_repo.html +0 -827
  296. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_branching.html +0 -1102
  297. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_merge_conflicts.html +0 -1102
  298. data/spec/support/static/git-scm.com/book/en/v2/ch00/_basic_merging.html +0 -1102
  299. data/spec/support/static/git-scm.com/book/en/v2/ch00/_binary_search.html +0 -861
  300. data/spec/support/static/git-scm.com/book/en/v2/ch00/_branch_management.html +0 -946
  301. data/spec/support/static/git-scm.com/book/en/v2/ch00/_branch_references.html +0 -1178
  302. data/spec/support/static/git-scm.com/book/en/v2/ch00/_build_number.html +0 -1354
  303. data/spec/support/static/git-scm.com/book/en/v2/ch00/_bundling.html +0 -888
  304. data/spec/support/static/git-scm.com/book/en/v2/ch00/_changing_multiple.html +0 -1182
  305. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_out_conflicts.html +0 -1605
  306. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_out_remotes.html +0 -1354
  307. data/spec/support/static/git-scm.com/book/en/v2/ch00/_checking_status.html +0 -1432
  308. data/spec/support/static/git-scm.com/book/en/v2/ch00/_cloning_submodules.html +0 -1864
  309. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_guidelines.html +0 -1667
  310. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_ranges.html +0 -1178
  311. data/spec/support/static/git-scm.com/book/en/v2/ch00/_commit_status.html +0 -1059
  312. data/spec/support/static/git-scm.com/book/en/v2/ch00/_committing_changes.html +0 -1432
  313. data/spec/support/static/git-scm.com/book/en/v2/ch00/_contrib_file.html +0 -1218
  314. data/spec/support/static/git-scm.com/book/en/v2/ch00/_contributing_project.html +0 -1667
  315. data/spec/support/static/git-scm.com/book/en/v2/ch00/_create_new_branch.html +0 -1020
  316. data/spec/support/static/git-scm.com/book/en/v2/ch00/_credential_caching.html +0 -1035
  317. data/spec/support/static/git-scm.com/book/en/v2/ch00/_custom_importer.html +0 -1741
  318. data/spec/support/static/git-scm.com/book/en/v2/ch00/_data_recovery.html +0 -1086
  319. data/spec/support/static/git-scm.com/book/en/v2/ch00/_delete_branches.html +0 -1009
  320. data/spec/support/static/git-scm.com/book/en/v2/ch00/_editor.html +0 -889
  321. data/spec/support/static/git-scm.com/book/en/v2/ch00/_eg_task_lists.html +0 -1502
  322. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_hooks.html +0 -876
  323. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_notification.html +0 -1502
  324. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_notifications.html +0 -1218
  325. data/spec/support/static/git-scm.com/book/en/v2/ch00/_email_pr.html +0 -1218
  326. data/spec/support/static/git-scm.com/book/en/v2/ch00/_enforcing_commit_message_format.html +0 -1200
  327. data/spec/support/static/git-scm.com/book/en/v2/ch00/_example_markdown.html +0 -1502
  328. data/spec/support/static/git-scm.com/book/en/v2/ch00/_external_merge_tools.html +0 -1315
  329. data/spec/support/static/git-scm.com/book/en/v2/ch00/_fetch_and_push_on_different_repositories.html +0 -1502
  330. data/spec/support/static/git-scm.com/book/en/v2/ch00/_fetching_and_pulling.html +0 -983
  331. data/spec/support/static/git-scm.com/book/en/v2/ch00/_file_annotation.html +0 -861
  332. data/spec/support/static/git-scm.com/book/en/v2/ch00/_first_time.html +0 -889
  333. data/spec/support/static/git-scm.com/book/en/v2/ch00/_generate_ssh_key.html +0 -759
  334. data/spec/support/static/git-scm.com/book/en/v2/ch00/_getting_a_repo.html +0 -816
  335. data/spec/support/static/git-scm.com/book/en/v2/ch00/_getting_git_on_a_server.html +0 -827
  336. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_aliases.html +0 -775
  337. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_am.html +0 -1354
  338. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_amend.html +0 -1182
  339. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_branches_overview.html +0 -1020
  340. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_clean.html +0 -1039
  341. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_cloning.html +0 -816
  342. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_commit_objects.html +0 -1209
  343. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_config.html +0 -1315
  344. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_diff_staged.html +0 -1432
  345. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_gc.html +0 -1086
  346. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_grep.html +0 -875
  347. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_help.html +0 -750
  348. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_hooks.html +0 -876
  349. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_mv.html +0 -1432
  350. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_p4.html +0 -1741
  351. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_p4_branches.html +0 -2656
  352. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_reflog.html +0 -1178
  353. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_refs.html +0 -939
  354. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_reset.html +0 -1236
  355. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_stashing.html +0 -1039
  356. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_submodules.html +0 -1864
  357. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_svn.html +0 -2656
  358. data/spec/support/static/git-scm.com/book/en/v2/ch00/_git_tagging.html +0 -1049
  359. data/spec/support/static/git-scm.com/book/en/v2/ch00/_gitlab_groups_section.html +0 -872
  360. data/spec/support/static/git-scm.com/book/en/v2/ch00/_ignoring.html +0 -1432
  361. data/spec/support/static/git-scm.com/book/en/v2/ch00/_inspecting_remote.html +0 -983
  362. data/spec/support/static/git-scm.com/book/en/v2/ch00/_integration_manager.html +0 -859
  363. data/spec/support/static/git-scm.com/book/en/v2/ch00/_interactive_staging.html +0 -920
  364. data/spec/support/static/git-scm.com/book/en/v2/ch00/_keyword_expansion.html +0 -1134
  365. data/spec/support/static/git-scm.com/book/en/v2/ch00/_libgit2_bindings.html +0 -1003
  366. data/spec/support/static/git-scm.com/book/en/v2/ch00/_manual_remerge.html +0 -1605
  367. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_code.html +0 -1502
  368. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_drag.html +0 -1502
  369. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_emoji.html +0 -1502
  370. data/spec/support/static/git-scm.com/book/en/v2/ch00/_md_quote.html +0 -1502
  371. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_button.html +0 -1218
  372. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_log.html +0 -1605
  373. data/spec/support/static/git-scm.com/book/en/v2/ch00/_merge_rebase_work.html +0 -1028
  374. data/spec/support/static/git-scm.com/book/en/v2/ch00/_new_repo_dropdown.html +0 -1218
  375. data/spec/support/static/git-scm.com/book/en/v2/ch00/_not_center.html +0 -1218
  376. data/spec/support/static/git-scm.com/book/en/v2/ch00/_org_page.html +0 -797
  377. data/spec/support/static/git-scm.com/book/en/v2/ch00/_other_client_hooks.html +0 -876
  378. data/spec/support/static/git-scm.com/book/en/v2/ch00/_p4_git_fusion.html +0 -2656
  379. data/spec/support/static/git-scm.com/book/en/v2/ch00/_patches_from_email.html +0 -1354
  380. data/spec/support/static/git-scm.com/book/en/v2/ch00/_personal_avatar.html +0 -858
  381. data/spec/support/static/git-scm.com/book/en/v2/ch00/_plumbing_porcelain.html +0 -745
  382. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_closed.html +0 -1502
  383. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_discussion.html +0 -1502
  384. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_fail.html +0 -1502
  385. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_final.html +0 -1502
  386. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_references.html +0 -1502
  387. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_references_render.html +0 -1502
  388. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pr_refs.html +0 -1218
  389. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pre_merge_rebase_work.html +0 -1028
  390. data/spec/support/static/git-scm.com/book/en/v2/ch00/_preparing_release.html +0 -1354
  391. data/spec/support/static/git-scm.com/book/en/v2/ch00/_private_team.html +0 -1667
  392. data/spec/support/static/git-scm.com/book/en/v2/ch00/_project_over_email.html +0 -1667
  393. data/spec/support/static/git-scm.com/book/en/v2/ch00/_public_project.html +0 -1667
  394. data/spec/support/static/git-scm.com/book/en/v2/ch00/_publishing_submodules.html +0 -1864
  395. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_branches.html +0 -1009
  396. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_refspecs.html +0 -872
  397. data/spec/support/static/git-scm.com/book/en/v2/ch00/_pushing_remotes.html +0 -983
  398. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_cherry_pick.html +0 -1354
  399. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_peril.html +0 -1028
  400. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_rebase.html +0 -1028
  401. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebase_rebase_work.html +0 -1028
  402. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rebasing.html +0 -1028
  403. data/spec/support/static/git-scm.com/book/en/v2/ch00/_refspec.html +0 -872
  404. data/spec/support/static/git-scm.com/book/en/v2/ch00/_remote_branches.html +0 -1009
  405. data/spec/support/static/git-scm.com/book/en/v2/ch00/_remote_repos.html +0 -983
  406. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_file_every_commit.html +0 -1182
  407. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_files.html +0 -1432
  408. data/spec/support/static/git-scm.com/book/en/v2/ch00/_removing_objects.html +0 -1086
  409. data/spec/support/static/git-scm.com/book/en/v2/ch00/_replace.html +0 -949
  410. data/spec/support/static/git-scm.com/book/en/v2/ch00/_reverse_commit.html +0 -1605
  411. data/spec/support/static/git-scm.com/book/en/v2/ch00/_revision_selection.html +0 -1178
  412. data/spec/support/static/git-scm.com/book/en/v2/ch00/_rewriting_history.html +0 -1182
  413. data/spec/support/static/git-scm.com/book/en/v2/ch00/_searching.html +0 -875
  414. data/spec/support/static/git-scm.com/book/en/v2/ch00/_service_config.html +0 -1059
  415. data/spec/support/static/git-scm.com/book/en/v2/ch00/_services_hooks.html +0 -1059
  416. data/spec/support/static/git-scm.com/book/en/v2/ch00/_setting_up_server.html +0 -870
  417. data/spec/support/static/git-scm.com/book/en/v2/ch00/_sharing_tags.html +0 -1049
  418. data/spec/support/static/git-scm.com/book/en/v2/ch00/_signing.html +0 -922
  419. data/spec/support/static/git-scm.com/book/en/v2/ch00/_signing_commits.html +0 -922
  420. data/spec/support/static/git-scm.com/book/en/v2/ch00/_squashing.html +0 -1182
  421. data/spec/support/static/git-scm.com/book/en/v2/ch00/_starting_submodules.html +0 -1864
  422. data/spec/support/static/git-scm.com/book/en/v2/ch00/_subtree_merge.html +0 -1605
  423. data/spec/support/static/git-scm.com/book/en/v2/ch00/_switching_branches.html +0 -1020
  424. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tagging_releases.html +0 -1354
  425. data/spec/support/static/git-scm.com/book/en/v2/ch00/_task_list_progress.html +0 -1502
  426. data/spec/support/static/git-scm.com/book/en/v2/ch00/_team_page.html +0 -797
  427. data/spec/support/static/git-scm.com/book/en/v2/ch00/_the_index.html +0 -1236
  428. data/spec/support/static/git-scm.com/book/en/v2/ch00/_the_shortlog.html +0 -1354
  429. data/spec/support/static/git-scm.com/book/en/v2/ch00/_topic_branch.html +0 -786
  430. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tracking_branches.html +0 -1009
  431. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tracking_files.html +0 -1432
  432. data/spec/support/static/git-scm.com/book/en/v2/ch00/_tree_objects.html +0 -1209
  433. data/spec/support/static/git-scm.com/book/en/v2/ch00/_triple_dot.html +0 -1178
  434. data/spec/support/static/git-scm.com/book/en/v2/ch00/_undoing.html +0 -998
  435. data/spec/support/static/git-scm.com/book/en/v2/ch00/_unstaging.html +0 -998
  436. data/spec/support/static/git-scm.com/book/en/v2/ch00/_viewing_history.html +0 -1172
  437. data/spec/support/static/git-scm.com/book/en/v2/ch00/_web_hook.html +0 -1059
  438. data/spec/support/static/git-scm.com/book/en/v2/ch00/_what_is_introduced.html +0 -1354
  439. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch01-getting-started.html +0 -783
  440. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch02-git-basics-chapter.html +0 -816
  441. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch03-git-branching.html +0 -1020
  442. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch05-distributed-git.html +0 -859
  443. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch06-github.html +0 -858
  444. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch06-github_flow.html +0 -1502
  445. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch10-git-internals.html +0 -745
  446. data/spec/support/static/git-scm.com/book/en/v2/ch00/ch_core_editor.html +0 -863
  447. data/spec/support/static/git-scm.com/book/en/v2/ch00/divergent_history.html +0 -1020
  448. data/spec/support/static/git-scm.com/book/en/v2/ch00/double_dot.html +0 -1178
  449. data/spec/support/static/git-scm.com/book/en/v2/ch00/filters_a.html +0 -1134
  450. data/spec/support/static/git-scm.com/book/en/v2/ch00/filters_b.html +0 -1134
  451. data/spec/support/static/git-scm.com/book/en/v2/ch00/limit_options.html +0 -1172
  452. data/spec/support/static/git-scm.com/book/en/v2/ch00/log_options.html +0 -1172
  453. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_a.html +0 -1354
  454. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_b.html +0 -1354
  455. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_c.html +0 -1354
  456. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_d.html +0 -1354
  457. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_e.html +0 -1354
  458. data/spec/support/static/git-scm.com/book/en/v2/ch00/merwf_f.html +0 -1354
  459. data/spec/support/static/git-scm.com/book/en/v2/ch00/oh_my_zsh_git.html +0 -765
  460. data/spec/support/static/git-scm.com/book/en/v2/ch00/pretty_format.html +0 -1172
  461. data/spec/support/static/git-scm.com/book/en/v2/ch00/psp_b.html +0 -1667
  462. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_e.html +0 -1028
  463. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_g.html +0 -1028
  464. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_h.html +0 -1028
  465. data/spec/support/static/git-scm.com/book/en/v2/ch00/rbdiag_i.html +0 -1028
  466. data/spec/support/static/git-scm.com/book/en/v2/ch00/rebasing-merging-example.html +0 -1028
  467. data/spec/support/static/git-scm.com/book/en/v2/ch00/ref_rerere.html +0 -983
  468. data/spec/support/static/git-scm.com/book/en/v2/ch00/ref_the_ref.html +0 -939
  469. data/spec/support/static/git-scm.com/book/en/v2/ch00/wfdiag_b.html +0 -859
  470. data/spec/support/static/git-scm.com/book/en/v2/ch00/wfdiag_c.html +0 -859
  471. data/spec/support/static/git-scm.com/book/en/v2/ch00/what_is_git_section.html +0 -857
  472. data/spec/support/static/git-scm.com/book/en/v2/images/2fa-1.png +0 -0
  473. data/spec/support/static/git-scm.com/book/en/v2/images/account-settings.png +0 -0
  474. data/spec/support/static/git-scm.com/book/en/v2/images/advance-master.png +0 -0
  475. data/spec/support/static/git-scm.com/book/en/v2/images/advance-testing.png +0 -0
  476. data/spec/support/static/git-scm.com/book/en/v2/images/areas.png +0 -0
  477. data/spec/support/static/git-scm.com/book/en/v2/images/avatar-crop.png +0 -0
  478. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-1.png +0 -0
  479. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-2.png +0 -0
  480. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-3.png +0 -0
  481. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-4.png +0 -0
  482. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-5.png +0 -0
  483. data/spec/support/static/git-scm.com/book/en/v2/images/basic-branching-6.png +0 -0
  484. data/spec/support/static/git-scm.com/book/en/v2/images/basic-merging-1.png +0 -0
  485. data/spec/support/static/git-scm.com/book/en/v2/images/basic-merging-2.png +0 -0
  486. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-1.png +0 -0
  487. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-2.png +0 -0
  488. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-3.png +0 -0
  489. data/spec/support/static/git-scm.com/book/en/v2/images/basic-rebase-4.png +0 -0
  490. data/spec/support/static/git-scm.com/book/en/v2/images/benevolent-dictator.png +0 -0
  491. data/spec/support/static/git-scm.com/book/en/v2/images/blink-01-start.png +0 -0
  492. data/spec/support/static/git-scm.com/book/en/v2/images/blink-02-pr.png +0 -0
  493. data/spec/support/static/git-scm.com/book/en/v2/images/blink-03-pull-request-open.png +0 -0
  494. data/spec/support/static/git-scm.com/book/en/v2/images/blink-04-email.png +0 -0
  495. data/spec/support/static/git-scm.com/book/en/v2/images/blink-04-pr-comment.png +0 -0
  496. data/spec/support/static/git-scm.com/book/en/v2/images/blink-05-general-comment.png +0 -0
  497. data/spec/support/static/git-scm.com/book/en/v2/images/blink-06-final.png +0 -0
  498. data/spec/support/static/git-scm.com/book/en/v2/images/branch-and-history.png +0 -0
  499. data/spec/support/static/git-scm.com/book/en/v2/images/branch_widget_mac.png +0 -0
  500. data/spec/support/static/git-scm.com/book/en/v2/images/branch_widget_win.png +0 -0
  501. data/spec/support/static/git-scm.com/book/en/v2/images/centralized.png +0 -0
  502. data/spec/support/static/git-scm.com/book/en/v2/images/centralized_workflow.png +0 -0
  503. data/spec/support/static/git-scm.com/book/en/v2/images/checkout-master.png +0 -0
  504. data/spec/support/static/git-scm.com/book/en/v2/images/clean.png +0 -0
  505. data/spec/support/static/git-scm.com/book/en/v2/images/collaborators.png +0 -0
  506. data/spec/support/static/git-scm.com/book/en/v2/images/commit-and-tree.png +0 -0
  507. data/spec/support/static/git-scm.com/book/en/v2/images/commits-and-parents.png +0 -0
  508. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-1.png +0 -0
  509. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-2.png +0 -0
  510. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-3.png +0 -0
  511. data/spec/support/static/git-scm.com/book/en/v2/images/data-model-4.png +0 -0
  512. data/spec/support/static/git-scm.com/book/en/v2/images/deltas.png +0 -0
  513. data/spec/support/static/git-scm.com/book/en/v2/images/distributed.png +0 -0
  514. data/spec/support/static/git-scm.com/book/en/v2/images/double-dot.png +0 -0
  515. data/spec/support/static/git-scm.com/book/en/v2/images/email-settings.png +0 -0
  516. data/spec/support/static/git-scm.com/book/en/v2/images/forkbutton.png +0 -0
  517. data/spec/support/static/git-scm.com/book/en/v2/images/git-bash.png +0 -0
  518. data/spec/support/static/git-scm.com/book/en/v2/images/git-diff-check.png +0 -0
  519. data/spec/support/static/git-scm.com/book/en/v2/images/git-fusion-boot.png +0 -0
  520. data/spec/support/static/git-scm.com/book/en/v2/images/git-fusion-perforce-graph.png +0 -0
  521. data/spec/support/static/git-scm.com/book/en/v2/images/git-gui.png +0 -0
  522. data/spec/support/static/git-scm.com/book/en/v2/images/git-instaweb.png +0 -0
  523. data/spec/support/static/git-scm.com/book/en/v2/images/git-osx-installer.png +0 -0
  524. data/spec/support/static/git-scm.com/book/en/v2/images/github_mac.png +0 -0
  525. data/spec/support/static/git-scm.com/book/en/v2/images/github_win.png +0 -0
  526. data/spec/support/static/git-scm.com/book/en/v2/images/gitk.png +0 -0
  527. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-groups.png +0 -0
  528. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-menu.png +0 -0
  529. data/spec/support/static/git-scm.com/book/en/v2/images/gitlab-users.png +0 -0
  530. data/spec/support/static/git-scm.com/book/en/v2/images/head-to-master.png +0 -0
  531. data/spec/support/static/git-scm.com/book/en/v2/images/head-to-testing.png +0 -0
  532. data/spec/support/static/git-scm.com/book/en/v2/images/integration-manager.png +0 -0
  533. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-1.png +0 -0
  534. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-2.png +0 -0
  535. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-3.png +0 -0
  536. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-4.png +0 -0
  537. data/spec/support/static/git-scm.com/book/en/v2/images/interesting-rebase-5.png +0 -0
  538. data/spec/support/static/git-scm.com/book/en/v2/images/jb.png +0 -0
  539. data/spec/support/static/git-scm.com/book/en/v2/images/large-merges-1.png +0 -0
  540. data/spec/support/static/git-scm.com/book/en/v2/images/large-merges-2.png +0 -0
  541. data/spec/support/static/git-scm.com/book/en/v2/images/lifecycle.png +0 -0
  542. data/spec/support/static/git-scm.com/book/en/v2/images/local.png +0 -0
  543. data/spec/support/static/git-scm.com/book/en/v2/images/lr-branches-1.png +0 -0
  544. data/spec/support/static/git-scm.com/book/en/v2/images/lr-branches-2.png +0 -0
  545. data/spec/support/static/git-scm.com/book/en/v2/images/maint-01-email.png +0 -0
  546. data/spec/support/static/git-scm.com/book/en/v2/images/maint-02-merge.png +0 -0
  547. data/spec/support/static/git-scm.com/book/en/v2/images/maint-03-email-resp.png +0 -0
  548. data/spec/support/static/git-scm.com/book/en/v2/images/maint-04-target.png +0 -0
  549. data/spec/support/static/git-scm.com/book/en/v2/images/maint-05-mentions.png +0 -0
  550. data/spec/support/static/git-scm.com/book/en/v2/images/maint-06-unsubscribe.png +0 -0
  551. data/spec/support/static/git-scm.com/book/en/v2/images/maint-07-notifications.png +0 -0
  552. data/spec/support/static/git-scm.com/book/en/v2/images/maint-08-notifications-page.png +0 -0
  553. data/spec/support/static/git-scm.com/book/en/v2/images/maint-09-contrib.png +0 -0
  554. data/spec/support/static/git-scm.com/book/en/v2/images/maint-10-default-branch.png +0 -0
  555. data/spec/support/static/git-scm.com/book/en/v2/images/maint-11-transfer.png +0 -0
  556. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-1.png +0 -0
  557. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-2.png +0 -0
  558. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-3.png +0 -0
  559. data/spec/support/static/git-scm.com/book/en/v2/images/managed-team-flow.png +0 -0
  560. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-01-example.png +0 -0
  561. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-02-tasks.png +0 -0
  562. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-03-task-summary.png +0 -0
  563. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-04-fenced-code.png +0 -0
  564. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-05-quote.png +0 -0
  565. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-06-emoji-complete.png +0 -0
  566. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-07-emoji.png +0 -0
  567. data/spec/support/static/git-scm.com/book/en/v2/images/markdown-08-drag-drop.png +0 -0
  568. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-01-syntax.png +0 -0
  569. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-02-render.png +0 -0
  570. data/spec/support/static/git-scm.com/book/en/v2/images/mentions-03-closed.png +0 -0
  571. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-1.png +0 -0
  572. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-2.png +0 -0
  573. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-3.png +0 -0
  574. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-4.png +0 -0
  575. data/spec/support/static/git-scm.com/book/en/v2/images/merging-workflows-5.png +0 -0
  576. data/spec/support/static/git-scm.com/book/en/v2/images/new-repo.png +0 -0
  577. data/spec/support/static/git-scm.com/book/en/v2/images/neworg.png +0 -0
  578. data/spec/support/static/git-scm.com/book/en/v2/images/newrepo.png +0 -0
  579. data/spec/support/static/git-scm.com/book/en/v2/images/newrepoform.png +0 -0
  580. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-01-page.png +0 -0
  581. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-02-teams.png +0 -0
  582. data/spec/support/static/git-scm.com/book/en/v2/images/orgs-03-audit.png +0 -0
  583. data/spec/support/static/git-scm.com/book/en/v2/images/p4merge.png +0 -0
  584. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-1.png +0 -0
  585. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-2.png +0 -0
  586. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-3.png +0 -0
  587. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-4.png +0 -0
  588. data/spec/support/static/git-scm.com/book/en/v2/images/perils-of-rebasing-5.png +0 -0
  589. data/spec/support/static/git-scm.com/book/en/v2/images/posh-git.png +0 -0
  590. data/spec/support/static/git-scm.com/book/en/v2/images/pr-01-fail.png +0 -0
  591. data/spec/support/static/git-scm.com/book/en/v2/images/pr-02-merge-fix.png +0 -0
  592. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-1.png +0 -0
  593. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-2.png +0 -0
  594. data/spec/support/static/git-scm.com/book/en/v2/images/public-small-3.png +0 -0
  595. data/spec/support/static/git-scm.com/book/en/v2/images/rebasing-1.png +0 -0
  596. data/spec/support/static/git-scm.com/book/en/v2/images/rebasing-2.png +0 -0
  597. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-1.png +0 -0
  598. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-2.png +0 -0
  599. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-3.png +0 -0
  600. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-4.png +0 -0
  601. data/spec/support/static/git-scm.com/book/en/v2/images/remote-branches-5.png +0 -0
  602. data/spec/support/static/git-scm.com/book/en/v2/images/replace1.png +0 -0
  603. data/spec/support/static/git-scm.com/book/en/v2/images/replace2.png +0 -0
  604. data/spec/support/static/git-scm.com/book/en/v2/images/replace3.png +0 -0
  605. data/spec/support/static/git-scm.com/book/en/v2/images/replace4.png +0 -0
  606. data/spec/support/static/git-scm.com/book/en/v2/images/replace5.png +0 -0
  607. data/spec/support/static/git-scm.com/book/en/v2/images/reposettingslink.png +0 -0
  608. data/spec/support/static/git-scm.com/book/en/v2/images/rerere1.png +0 -0
  609. data/spec/support/static/git-scm.com/book/en/v2/images/rerere2.png +0 -0
  610. data/spec/support/static/git-scm.com/book/en/v2/images/rerere3.png +0 -0
  611. data/spec/support/static/git-scm.com/book/en/v2/images/reset-checkout.png +0 -0
  612. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex1.png +0 -0
  613. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex2.png +0 -0
  614. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex3.png +0 -0
  615. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex4.png +0 -0
  616. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex5.png +0 -0
  617. data/spec/support/static/git-scm.com/book/en/v2/images/reset-ex6.png +0 -0
  618. data/spec/support/static/git-scm.com/book/en/v2/images/reset-hard.png +0 -0
  619. data/spec/support/static/git-scm.com/book/en/v2/images/reset-mixed.png +0 -0
  620. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path1.png +0 -0
  621. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path2.png +0 -0
  622. data/spec/support/static/git-scm.com/book/en/v2/images/reset-path3.png +0 -0
  623. data/spec/support/static/git-scm.com/book/en/v2/images/reset-soft.png +0 -0
  624. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r1.png +0 -0
  625. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r2.png +0 -0
  626. data/spec/support/static/git-scm.com/book/en/v2/images/reset-squash-r3.png +0 -0
  627. data/spec/support/static/git-scm.com/book/en/v2/images/reset-start.png +0 -0
  628. data/spec/support/static/git-scm.com/book/en/v2/images/reset-workflow.png +0 -0
  629. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-01-services.png +0 -0
  630. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-02-email-service.png +0 -0
  631. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-03-webhook.png +0 -0
  632. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-04-webhook-debug.png +0 -0
  633. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-05-access-token.png +0 -0
  634. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-06-comment.png +0 -0
  635. data/spec/support/static/git-scm.com/book/en/v2/images/scripting-07-status.png +0 -0
  636. data/spec/support/static/git-scm.com/book/en/v2/images/signup.png +0 -0
  637. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-1.png +0 -0
  638. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-2.png +0 -0
  639. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-3.png +0 -0
  640. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-4.png +0 -0
  641. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-5.png +0 -0
  642. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-6.png +0 -0
  643. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-7.png +0 -0
  644. data/spec/support/static/git-scm.com/book/en/v2/images/small-team-flow.png +0 -0
  645. data/spec/support/static/git-scm.com/book/en/v2/images/smudge.png +0 -0
  646. data/spec/support/static/git-scm.com/book/en/v2/images/snapshots.png +0 -0
  647. data/spec/support/static/git-scm.com/book/en/v2/images/ssh-keys.png +0 -0
  648. data/spec/support/static/git-scm.com/book/en/v2/images/topic-branches-1.png +0 -0
  649. data/spec/support/static/git-scm.com/book/en/v2/images/topic-branches-2.png +0 -0
  650. data/spec/support/static/git-scm.com/book/en/v2/images/two-branches.png +0 -0
  651. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-reset.png +0 -0
  652. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert.png +0 -0
  653. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert2.png +0 -0
  654. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-revert3.png +0 -0
  655. data/spec/support/static/git-scm.com/book/en/v2/images/undomerge-start.png +0 -0
  656. data/spec/support/static/git-scm.com/book/en/v2/images/your-profile.png +0 -0
  657. data/spec/support/static/git-scm.com/book/en/v2/images/zsh-oh-my.png +0 -0
  658. data/spec/support/static/git-scm.com/book/en/v2/images/zsh-prompt.png +0 -0
  659. data/spec/support/static/git-scm.com/book/en/v2.html +0 -688
  660. data/spec/support/static/git-scm.com/favicon.ico +0 -0
  661. data/spec/support/static/git-scm.com/images/bg/body.jpg +0 -0
  662. data/spec/support/static/git-scm.com/images/bg/isometric-grid.png +0 -0
  663. data/spec/support/static/git-scm.com/images/bg/isometric-grid@2x.png +0 -0
  664. data/spec/support/static/git-scm.com/images/bg/search-header.jpg +0 -0
  665. data/spec/support/static/git-scm.com/images/company-project-logos/android.png +0 -0
  666. data/spec/support/static/git-scm.com/images/company-project-logos/android@2x.png +0 -0
  667. data/spec/support/static/git-scm.com/images/company-project-logos/eclipse.png +0 -0
  668. data/spec/support/static/git-scm.com/images/company-project-logos/eclipse@2x.png +0 -0
  669. data/spec/support/static/git-scm.com/images/company-project-logos/facebook.png +0 -0
  670. data/spec/support/static/git-scm.com/images/company-project-logos/facebook@2x.png +0 -0
  671. data/spec/support/static/git-scm.com/images/company-project-logos/gnome.png +0 -0
  672. data/spec/support/static/git-scm.com/images/company-project-logos/gnome@2x.png +0 -0
  673. data/spec/support/static/git-scm.com/images/company-project-logos/google.png +0 -0
  674. data/spec/support/static/git-scm.com/images/company-project-logos/google@2x.png +0 -0
  675. data/spec/support/static/git-scm.com/images/company-project-logos/kde.png +0 -0
  676. data/spec/support/static/git-scm.com/images/company-project-logos/kde@2x.png +0 -0
  677. data/spec/support/static/git-scm.com/images/company-project-logos/linked-in.png +0 -0
  678. data/spec/support/static/git-scm.com/images/company-project-logos/linked-in@2x.png +0 -0
  679. data/spec/support/static/git-scm.com/images/company-project-logos/linux.png +0 -0
  680. data/spec/support/static/git-scm.com/images/company-project-logos/linux@2x.png +0 -0
  681. data/spec/support/static/git-scm.com/images/company-project-logos/microsoft.png +0 -0
  682. data/spec/support/static/git-scm.com/images/company-project-logos/microsoft@2x.png +0 -0
  683. data/spec/support/static/git-scm.com/images/company-project-logos/netflix.png +0 -0
  684. data/spec/support/static/git-scm.com/images/company-project-logos/netflix@2x.png +0 -0
  685. data/spec/support/static/git-scm.com/images/company-project-logos/perl.png +0 -0
  686. data/spec/support/static/git-scm.com/images/company-project-logos/perl@2x.png +0 -0
  687. data/spec/support/static/git-scm.com/images/company-project-logos/postgresql.png +0 -0
  688. data/spec/support/static/git-scm.com/images/company-project-logos/postgresql@2x.png +0 -0
  689. data/spec/support/static/git-scm.com/images/company-project-logos/qt.png +0 -0
  690. data/spec/support/static/git-scm.com/images/company-project-logos/qt@2x.png +0 -0
  691. data/spec/support/static/git-scm.com/images/company-project-logos/rails.png +0 -0
  692. data/spec/support/static/git-scm.com/images/company-project-logos/rails@2x.png +0 -0
  693. data/spec/support/static/git-scm.com/images/company-project-logos/twitter.png +0 -0
  694. data/spec/support/static/git-scm.com/images/company-project-logos/twitter@2x.png +0 -0
  695. data/spec/support/static/git-scm.com/images/company-project-logos/x.png +0 -0
  696. data/spec/support/static/git-scm.com/images/company-project-logos/x@2x.png +0 -0
  697. data/spec/support/static/git-scm.com/images/epub.png +0 -0
  698. data/spec/support/static/git-scm.com/images/icons/admin-sm.png +0 -0
  699. data/spec/support/static/git-scm.com/images/icons/admin-sm@2x.png +0 -0
  700. data/spec/support/static/git-scm.com/images/icons/apple.png +0 -0
  701. data/spec/support/static/git-scm.com/images/icons/apple@2x.png +0 -0
  702. data/spec/support/static/git-scm.com/images/icons/book.png +0 -0
  703. data/spec/support/static/git-scm.com/images/icons/book@2x.png +0 -0
  704. data/spec/support/static/git-scm.com/images/icons/box.png +0 -0
  705. data/spec/support/static/git-scm.com/images/icons/box@2x.png +0 -0
  706. data/spec/support/static/git-scm.com/images/icons/branch-sm.png +0 -0
  707. data/spec/support/static/git-scm.com/images/icons/branch-sm@2x.png +0 -0
  708. data/spec/support/static/git-scm.com/images/icons/camera-sm.png +0 -0
  709. data/spec/support/static/git-scm.com/images/icons/camera-sm@2x.png +0 -0
  710. data/spec/support/static/git-scm.com/images/icons/chevron-up@2x.png +0 -0
  711. data/spec/support/static/git-scm.com/images/icons/code.png +0 -0
  712. data/spec/support/static/git-scm.com/images/icons/code@2x.png +0 -0
  713. data/spec/support/static/git-scm.com/images/icons/debugging-sm.png +0 -0
  714. data/spec/support/static/git-scm.com/images/icons/debugging-sm@2x.png +0 -0
  715. data/spec/support/static/git-scm.com/images/icons/document.png +0 -0
  716. data/spec/support/static/git-scm.com/images/icons/document@2x.png +0 -0
  717. data/spec/support/static/git-scm.com/images/icons/download.png +0 -0
  718. data/spec/support/static/git-scm.com/images/icons/email-sm.png +0 -0
  719. data/spec/support/static/git-scm.com/images/icons/email-sm@2x.png +0 -0
  720. data/spec/support/static/git-scm.com/images/icons/external-sm.png +0 -0
  721. data/spec/support/static/git-scm.com/images/icons/external-sm@2x.png +0 -0
  722. data/spec/support/static/git-scm.com/images/icons/gui.png +0 -0
  723. data/spec/support/static/git-scm.com/images/icons/gui@2x.png +0 -0
  724. data/spec/support/static/git-scm.com/images/icons/info.png +0 -0
  725. data/spec/support/static/git-scm.com/images/icons/info@2x.png +0 -0
  726. data/spec/support/static/git-scm.com/images/icons/inspection-sm.png +0 -0
  727. data/spec/support/static/git-scm.com/images/icons/inspection-sm@2x.png +0 -0
  728. data/spec/support/static/git-scm.com/images/icons/linux.png +0 -0
  729. data/spec/support/static/git-scm.com/images/icons/linux@2x.png +0 -0
  730. data/spec/support/static/git-scm.com/images/icons/nav-circles.png +0 -0
  731. data/spec/support/static/git-scm.com/images/icons/nav-circles@2x.png +0 -0
  732. data/spec/support/static/git-scm.com/images/icons/patching-sm.png +0 -0
  733. data/spec/support/static/git-scm.com/images/icons/patching-sm@2x.png +0 -0
  734. data/spec/support/static/git-scm.com/images/icons/plumbing-sm.png +0 -0
  735. data/spec/support/static/git-scm.com/images/icons/plumbing-sm@2x.png +0 -0
  736. data/spec/support/static/git-scm.com/images/icons/projects-sm.png +0 -0
  737. data/spec/support/static/git-scm.com/images/icons/projects-sm@2x.png +0 -0
  738. data/spec/support/static/git-scm.com/images/icons/search.png +0 -0
  739. data/spec/support/static/git-scm.com/images/icons/search@2x.png +0 -0
  740. data/spec/support/static/git-scm.com/images/icons/server-admin-sm.png +0 -0
  741. data/spec/support/static/git-scm.com/images/icons/server-admin-sm@2x.png +0 -0
  742. data/spec/support/static/git-scm.com/images/icons/setup-sm.png +0 -0
  743. data/spec/support/static/git-scm.com/images/icons/setup-sm@2x.png +0 -0
  744. data/spec/support/static/git-scm.com/images/icons/sharing-sm.png +0 -0
  745. data/spec/support/static/git-scm.com/images/icons/sharing-sm@2x.png +0 -0
  746. data/spec/support/static/git-scm.com/images/icons/sidebar.png +0 -0
  747. data/spec/support/static/git-scm.com/images/icons/sidebar@2x.png +0 -0
  748. data/spec/support/static/git-scm.com/images/icons/source-code.png +0 -0
  749. data/spec/support/static/git-scm.com/images/icons/source-code@2x.png +0 -0
  750. data/spec/support/static/git-scm.com/images/icons/windows.png +0 -0
  751. data/spec/support/static/git-scm.com/images/icons/windows@2x.png +0 -0
  752. data/spec/support/static/git-scm.com/images/logo@2x.png +0 -0
  753. data/spec/support/static/git-scm.com/images/mobi.png +0 -0
  754. data/spec/support/static/git-scm.com/images/monitor-default.png +0 -0
  755. data/spec/support/static/git-scm.com/images/monitor-default@2x.png +0 -0
  756. data/spec/support/static/git-scm.com/images/monitor-linux.png +0 -0
  757. data/spec/support/static/git-scm.com/images/monitor-linux@2x.png +0 -0
  758. data/spec/support/static/git-scm.com/images/monitor-mac.png +0 -0
  759. data/spec/support/static/git-scm.com/images/monitor-mac@2x.png +0 -0
  760. data/spec/support/static/git-scm.com/images/monitor-windows.png +0 -0
  761. data/spec/support/static/git-scm.com/images/monitor-windows@2x.png +0 -0
  762. data/spec/support/static/git-scm.com/images/pdf.png +0 -0
  763. data/spec/support/static/git-scm.com/images/progit2.png +0 -0
  764. data/spec/support/static/git-scm.com/images/sidebar-divider.png +0 -0
  765. data/spec/support/static/git-scm.com/images/sidebar-divider@2x.png +0 -0
  766. data/spec/support/static/git-scm.com/robots.txt +0 -0
  767. data/spec/support/static/graph/details/a.html +0 -10
  768. data/spec/support/static/graph/details/b.html +0 -10
  769. data/spec/support/static/graph/index.html +0 -20
  770. data/spec/support/static/links/links.html +0 -28
  771. data/docs/{reference → guides}/cli.md +0 -0
  772. data/spec/{stringify_spec.rb → wayfarer/stringify_spec.rb} +2 -2
  773. /data/spec/{task_spec.rb → wayfarer/task_spec.rb} +0 -0
@@ -1 +0,0 @@
1
- /*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main #logo-license,#main .bottom-nav{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main #logo-license p,#main .bottom-nav p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #reference-version a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}p{margin:0 0 11px;font-size:14px;line-height:22px}p small{font-size:12px;color:#9a9994}a{color:#0388a6;text-decoration:none;transition-duration:0.3s;transition-property:color}h1,h2,h3,h4,h5,h6{margin:0;font-weight:normal;color:#4e443c;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#9a9994}h1{margin-bottom:0.4em;font-size:36px;line-height:44px}h1 small{font-size:18px}h2{margin-top:20px;font-size:18px;font-weight:bold;line-height:44px;color:#f14e32}h2 small{font-size:18px}.callout h2:first-child,#book-container h2:first-child,.bottom-nav h2:first-child,#logo-license h2:first-child{margin-top:0}h3{line-height:33px;font-size:16px;font-weight:bold}h3 small{font-size:14px}h4,h5,h6{line-height:22px}h4{font-size:14px;font-weight:bold}h4 small{font-size:12px}aside h4{margin-bottom:1em;color:#9a9994;line-height:1.4}h5{font-size:12px}h6{font-size:11px;color:#9a9994;text-transform:uppercase}ul,ol{padding:0;margin:0 0 11px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:22px}ul.unstyled,ul.stackoverflow,ul.content-list,ul.books-list,ul.video-thumbnails,ul.gui-thumbnails,#companies-projects ul,#front-nav ul,#search-results table ul,ul#download-next-steps,ul.section-nav-container,ul#book-chapters,ul#reference-version,ol.unstyled,ol#about-nav,ol.content-list,ol.book-toc,ol.reference-previous-versions,ol.full-search-results,ol#download-next-steps,ol.section-nav-container,ol#book-chapters,ol#reference-version{margin-left:0;list-style:none}ul.bullets li{padding-bottom:10px}dl{margin-bottom:22px}dt,dd{line-height:22px}dt{font-weight:bold;line-height:21px}dd{margin-left:11px}.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right}.dl-horizontal dd{margin-left:130px}hr{margin:22px 0;border:0;border-top:1px solid #d8d7cf}strong{font-weight:bold}em{font-style:italic}.muted{color:#9a9994}abbr[title]{border-bottom:1px dotted #ddd;cursor:help}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 22px;border-left:5px solid #d8d7cf}blockquote p{margin-bottom:0}blockquote small{display:block;line-height:22px;color:#9a9994}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #d8d7cf;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}code,#documentation #main p tt{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;display:block;padding:10px 15px 13px;margin-bottom:1em;overflow:auto;font-family:Courier, monospace;line-height:18px;color:#f14e32;background-color:#fff;border:solid 1px #efeee6}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:22px;font-style:normal;line-height:22px}table th{font-weight:bold}table.data{margin-bottom:24px}table.data th,table.data td{padding:2px 0;border-bottom:solid 1px #efeeeb}table td.sweet{font-weight:bold;color:#25b028}table td.compare{font-weight:bold;color:#f14e32}.light{color:#9a9994}small{font-size:100%}cite{font-style:normal}a.subtle-button{display:inline-block;padding:3px 20px;font-size:12px;text-align:center;background-image:linear-gradient(#f1f1e9, #eae9e1);border-top:solid 1px #dedcd4;border-right:solid 1px #dedcd4;border-bottom:solid 1px #cdcbc4;border-left:solid 1px #dedcd4;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 #f1f1e9;-moz-box-shadow:0 1px 0 #f1f1e9;box-shadow:0 1px 0 #f1f1e9;transition-duration:0.3s;transition-property:background-image}a.subtle-button:hover{color:#0388a6;background-image:linear-gradient(#edede3, #e6e5db)}a.subtle-button.selected{background-image:linear-gradient(#d7d7c1, #cbc9b4)}a#gui-os-filter{display:none;margin-top:15px}a#gui-os-filter.visible{display:inline-block}div.more{display:none}.highlight{background-color:#eee0b5;padding:2px}.fixed{font-family:Courier, monospace}.text-center{text-align:center}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #reference-version a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}#more-downloads.callout .column-left{width:47%}#more-downloads.callout .column-right{width:45%}#more-downloads.callout p{padding-bottom:1em;line-height:1.4}#download-next-steps{padding-top:24px}#download-next-steps:before{display:table;content:""}#download-next-steps:after{display:table;clear:both;content:""}#download-next-steps li{display:block;float:left;width:200px;margin-bottom:20px}#download-next-steps li+li{margin-left:20px}#download-next-steps a{display:block;color:#4e443c;text-align:center;background-repeat:no-repeat;background-position:0 0;transition-duration:0.3s;transition-property:color}#download-next-steps a img{display:block;margin:0 auto 10px;opacity:0.9;transition-duration:0.3s;transition-property:opacity;image-rendering:-webkit-optimize-contrast}#download-next-steps a h3{font-size:18px;font-weight:bold;color:#f14e32}#download-next-steps a p{font-size:13px;line-height:17.6px}#download-next-steps a:hover img{opacity:1}#download-next-steps a:hover h3{color:#ef391a}#os-filter-count{position:relative;top:8px;left:12px;display:none;color:#f14e32}.downloading .hide{display:none}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column #download-next-steps a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}#search-results{position:absolute;top:2px;right:-8px;z-index:900;display:none;width:384px;background:#398a94 url("../images/bg/search-header.jpg") 0 1px repeat-x;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 7px rgba(0,0,0,0.25);-moz-box-shadow:0 0 7px rgba(0,0,0,0.25);box-shadow:0 0 7px rgba(0,0,0,0.25);border-bottom:solid 1px #d8d7cf}#search-results header{height:44px;padding:0;margin:0;text-indent:-9999px;border:solid 1px #366769;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px}#search-results table{width:100%;line-height:1;background-color:#fff;-webkit-border-bottom-right-radius:3px;-moz-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-bottom-left-radius:3px;border-bottom-left-radius:3px}#search-results table td{border-top:solid 1px #cfddde}#search-results table td.category{width:67px;padding:10px 12px 0 0;font-size:11px;color:#009099;text-align:right;vertical-align:top;background-color:#f5fbfb;border-right:solid 1px #cfddde;opacity:0.75}#search-results table td.matches{padding:0 !important;font-size:12px;font-weight:bold}#search-results table td.matches a{display:block;padding:5px 12px;margin-bottom:0;color:#4e443c;transition-duration:0s}#search-results table td.matches a:hover,#search-results table td.matches a.highlight{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.25);background:#55bec4;background-image:linear-gradient(#55bec4, #54b2b7)}#search-results table td.matches a:hover span,#search-results table td.matches a.highlight span{color:#fff}#search-results table ul{margin-bottom:0}#search-results table tr.show-all td{border-top:none}ol.full-search-results li{margin-bottom:2em}ol.full-search-results li:last-child{margin-bottom:0}ol.full-search-results h3{line-height:1.4;padding-bottom:0;margin-bottom:0}ol.full-search-results span.relevancy{float:right;padding-left:5px;margin-left:30px}ol.full-search-results span.relevancy img{position:relative;top:-2px}ol.full-search-results a.url{display:block;margin-bottom:0.4em;font-size:12px;color:#9a9994}ol.full-search-results a.url:hover{color:#5a5955}.callout.top-matches,#book-container.top-matches,.top-matches.bottom-nav,#logo-license.top-matches{padding-top:1em !important;margin-bottom:2em !important}@media (max-width: 940px){#search-results{transform:translateX(-50%);left:50%;top:unset;width:98%}}@media (max-width: 640px){#search-results{margin-top:4px}}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}#front-content{overflow:visible}#front-content:before{display:table;content:""}#front-content:after{display:table;clear:both;content:""}#front-content #front-navigation{float:left;width:618px;margin-bottom:24px;border-right:solid 1px #d8d7cf}#front-nav:before{display:table;content:""}#front-nav:after{display:table;clear:both;content:""}#front-nav ul{padding-top:24px}#front-nav ul li{display:block;float:left;width:280px;margin-bottom:20px}#front-nav ul li#nav-about,#front-nav ul li#nav-downloads{margin-right:30px}#front-nav ul li#nav-about,#front-nav ul li#nav-documentation{margin-bottom:40px}#front-nav a{display:block;height:86px;padding-left:90px;color:#4e443c;background-repeat:no-repeat;background-position:0 0;transition-duration:0.3s;transition-property:color}#front-nav a img{float:left;margin-right:-90px;margin-left:-90px;opacity:0.9;transition-duration:0.3s;transition-property:opacity}#front-nav a h3{font-size:18px;font-weight:bold;color:#f14e32}#front-nav a p{font-size:13px;line-height:17.6px}#front-nav a:hover img{opacity:1}#front-nav a:hover h3{color:#ef391a}#front-book{float:left;width:590px;padding-top:20px;border-top:solid 1px #d8d7cf}#front-book img{float:left;margin-right:20px}#front-book p{margin-top:16px}#front-downloads{float:right;width:313px;position:relative}#front-downloads .monitor{position:absolute;top:0;right:-12px}#front-downloads table{position:absolute;top:271px;left:24px}#front-downloads table td{padding:8px 20px 6px 0;min-width:145px}#front-downloads table a{font-weight:bold}.monitor{background:transparent url("../images/monitor-default.png") top right no-repeat;background-size:313px 271px;width:273px;height:226px;padding-top:45px;padding-left:40px;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,0.2)}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.monitor{background:transparent url("../images/monitor-default@2x.png") top right no-repeat;background-size:313px 271px}}.monitor h4{font-weight:normal;color:#fff;font-size:16px}.monitor span.version{display:block;margin-bottom:6px;font-size:28px;font-weight:bold}.monitor a{color:#eee;font-size:12px;text-decoration:underline}.monitor span.release-date{font-size:12px}.monitor a.button{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 0 #148a92;-moz-box-shadow:0 1px 0 #148a92;box-shadow:0 1px 0 #148a92;display:block;width:224px;padding:5px 0;margin-top:10px;font-size:16px;color:#fff;text-align:center;background-image:linear-gradient(#1c868c, #186368);border-top:solid 1px #085e64;border-right:solid 1px #1f6367;border-bottom:solid 1px #134143;border-left:solid 1px #1f6367;transition-duration:0.3s;transition-property:background-image;text-decoration:none}.monitor a.button:hover{background-image:linear-gradient(#1a7e84, #165b60)}.monitor.mac{background:transparent url("../images/monitor-mac.png") top right no-repeat;background-size:313px 271px;width:273px;height:235px;padding-top:36px;padding-left:40px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.monitor.mac{background:transparent url("../images/monitor-mac@2x.png") top right no-repeat;background-size:313px 271px}}.monitor.windows{background:transparent url("../images/monitor-windows.png") top right no-repeat;background-size:313px 271px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.monitor.windows{background:transparent url("../images/monitor-windows@2x.png") top right no-repeat;background-size:313px 271px}}.monitor.linux{background:transparent url("../images/monitor-linux.png") top right no-repeat;background-size:313px 271px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.monitor.linux{background:transparent url("../images/monitor-linux@2x.png") top right no-repeat;background-size:313px 271px}}#companies-projects{padding-top:20px;clear:both;border-top:solid 1px #d8d7cf}#companies-projects ul li{display:block;float:left;width:108px;height:65px;margin:0 4px 25px 5px}#companies-projects ul a{display:block;width:108px;height:65px;text-indent:-9999px;background-repeat:no-repeat;background-position:0 0;opacity:0.85;transition-duration:0.3s;transition-property:opacity}#companies-projects ul a:hover{opacity:1}#companies-projects ul a.facebook{background-image:url("../images/company-project-logos/facebook.png")}#companies-projects ul a.google{background:transparent url("../images/company-project-logos/google.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.google{background:transparent url("../images/company-project-logos/google@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.twitter{background:transparent url("../images/company-project-logos/twitter.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.twitter{background:transparent url("../images/company-project-logos/twitter@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.microsoft{background:transparent url("../images/company-project-logos/microsoft.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.microsoft{background:transparent url("../images/company-project-logos/microsoft@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.netflix{background:transparent url("../images/company-project-logos/netflix.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.netflix{background:transparent url("../images/company-project-logos/netflix@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.linked-in{background:transparent url("../images/company-project-logos/linked-in.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.linked-in{background:transparent url("../images/company-project-logos/linked-in@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.linux{background:transparent url("../images/company-project-logos/linux.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.linux{background:transparent url("../images/company-project-logos/linux@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.perl{background:transparent url("../images/company-project-logos/perl.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.perl{background:transparent url("../images/company-project-logos/perl@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.postgresql{background:transparent url("../images/company-project-logos/postgresql.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.postgresql{background:transparent url("../images/company-project-logos/postgresql@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.facebook{background:transparent url("../images/company-project-logos/facebook.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.facebook{background:transparent url("../images/company-project-logos/facebook@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.android{background:transparent url("../images/company-project-logos/android.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.android{background:transparent url("../images/company-project-logos/android@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.rails{background:transparent url("../images/company-project-logos/rails.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.rails{background:transparent url("../images/company-project-logos/rails@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.qt{background:transparent url("../images/company-project-logos/qt.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.qt{background:transparent url("../images/company-project-logos/qt@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.gnome{background:transparent url("../images/company-project-logos/gnome.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.gnome{background:transparent url("../images/company-project-logos/gnome@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.eclipse{background:transparent url("../images/company-project-logos/eclipse.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.eclipse{background:transparent url("../images/company-project-logos/eclipse@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.kde{background:transparent url("../images/company-project-logos/kde.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.kde{background:transparent url("../images/company-project-logos/kde@2x.png") top right no-repeat;background-size:108px 65px}}#companies-projects ul a.x{background:transparent url("../images/company-project-logos/x.png") top right no-repeat;background-size:108px 65px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#companies-projects ul a.x{background:transparent url("../images/company-project-logos/x@2x.png") top right no-repeat;background-size:108px 65px}}a.icon{display:inline-block;height:30px;padding-left:30px;line-height:36px}a.icon.gui{background:transparent url("../images/icons/gui.png") 6px 3px no-repeat;background-size:18px 24px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){a.icon.gui{background:transparent url("../images/icons/gui@2x.png") 6px 3px no-repeat;background-size:18px 24px}}a.icon.older-releases{background:transparent url("../images/icons/box.png") 0 6px no-repeat;background-size:22px 20px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){a.icon.older-releases{background:transparent url("../images/icons/box@2x.png") 0 6px no-repeat;background-size:22px 20px}}a.icon.windows{background:transparent url("../images/icons/windows.png") 0 6px no-repeat;background-size:24px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){a.icon.windows{background:transparent url("../images/icons/windows@2x.png") 0 6px no-repeat;background-size:24px 21px}}a.icon.mac{background:transparent url("../images/icons/apple.png") 5px 4px no-repeat;background-size:17px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){a.icon.mac{background:transparent url("../images/icons/apple@2x.png") 5px 4px no-repeat;background-size:17px 21px}}a.icon.linux{background:transparent url("../images/icons/linux.png") 6px 6px no-repeat;background-size:17px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){a.icon.linux{background:transparent url("../images/icons/linux@2x.png") 6px 6px no-repeat;background-size:17px 21px}}a.icon.source{background:transparent url("../images/icons/source-code.png") 0 6px no-repeat;background-size:25px 20px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){a.icon.source{background:transparent url("../images/icons/source-code@2x.png") 0 6px no-repeat;background-size:25px 20px}}@media (max-width: 940px){#front-content{display:flex}#front-content #front-navigation{width:50%}#front-content #front-navigation #front-nav ul{padding:0 1rem 0 0}#front-content #front-navigation #front-nav ul li{margin-bottom:1rem !important;margin-right:0 !important}#front-content #front-navigation #front-book{width:unset}#front-content #front-downloads{width:50%}#front-content #front-downloads .monitor{transform:translateX(-50%);left:50%}#front-content #front-downloads table{transform:translateX(-50%);left:50%}#front-content #front-downloads table tbody,#front-content #front-downloads table tr{display:flex;flex-direction:column}#front-content #front-downloads table td{margin-bottom:1rem}#front-content #front-downloads table td a{padding-left:2.3rem}#companies-projects ul{display:flex;flex-wrap:wrap;justify-content:center}#companies-projects li{margin:0.7rem 0.4rem}}@media (max-width: 640px){#front-content{flex-direction:column-reverse}#front-content #front-navigation,#front-content #front-downloads{width:100%;border-right:none}#front-content #front-navigation #front-nav ul{padding:0 1rem}#front-content #front-navigation #front-book{display:flex;justify-content:center;align-items:center}#front-content #front-downloads{border-bottom:1px solid #d8d7cf;margin-bottom:2rem;padding-bottom:1rem}#front-content #front-downloads .monitor,#front-content #front-downloads table{position:relative}#front-content #front-downloads table{top:0}}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}hr.sidebar{width:218px;height:12px;margin-bottom:2em;border:0 !important;background:transparent url("../images/sidebar-divider.png") top right no-repeat;background-size:218px 12px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){hr.sidebar{background:transparent url("../images/sidebar-divider@2x.png") top right no-repeat;background-size:218px 12px}}aside.sidebar{font-size:13px !important;line-height:16.5px}aside.sidebar p{font-size:13px !important;line-height:16.5px}aside.sidebar .callout,aside.sidebar #book-container,aside.sidebar .bottom-nav,aside.sidebar #logo-license{padding:20px;color:#887668;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px}aside.sidebar .callout p,aside.sidebar #book-container p,aside.sidebar .bottom-nav p,aside.sidebar #logo-license p{margin-bottom:0}aside.sidebar.active{background-color:#efefe7;z-index:305;left:0;box-shadow:6px 2px 8px 0px rgba(28,28,28,0.1);border:thin solid #ddd;border-radius:0 5px 5px 0;transform:translateX(0%)}.sidebar-btn{display:none}@media (max-width: 940px){.sidebar-btn{background:transparent url("../images/icons/sidebar.png") left center no-repeat;background-size:24px 24px;-webkit-border-top-right-radius:5px;-moz-border-top-right-radius:5px;border-top-right-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-bottom-right-radius:5px;border-bottom-right-radius:5px;background-color:#333333 !important;display:block;position:fixed;padding:2rem 0.4rem;z-index:1;border:none;left:0;width:1.6rem}}@media only screen and (max-width: 940px) and (-webkit-min-device-pixel-ratio: 2),only screen and (max-width: 940px) and (min--moz-device-pixel-ratio: 2),only screen and (max-width: 940px) and (-o-min-device-pixel-ratio: 2/1){.sidebar-btn{background:transparent url("../images/icons/sidebar@2x.png") left center no-repeat;background-size:24px 24px}}@media (max-width: 940px){.sidebar-btn:focus+.sidebar{background-color:#efefe7;z-index:305;left:0;box-shadow:6px 2px 8px 0px rgba(28,28,28,0.1);border:thin solid #ddd;border-radius:0 5px 5px 0;transform:translateX(0%)}aside.sidebar{position:fixed;top:1em;transform:translateX(-105.5%);transition:transform 0.3s, background-color 0.3s;padding:20px;height:90vh;overflow-y:scroll;z-index:1001 !important}}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}.topics h3,.topics ul li{padding-left:23px}h3.setup{background:transparent url("../images/icons/setup-sm.png") 0 50% no-repeat;background-size:17px 17px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.setup{background:transparent url("../images/icons/setup-sm@2x.png") 0 50% no-repeat;background-size:17px 17px}}h3.projects{background:transparent url("../images/icons/projects-sm.png") 0 50% no-repeat;background-size:17px 13px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.projects{background:transparent url("../images/icons/projects-sm@2x.png") 0 50% no-repeat;background-size:17px 13px}}h3.snapshotting{background:transparent url("../images/icons/camera-sm.png") 0 50% no-repeat;background-size:17px 12px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.snapshotting{background:transparent url("../images/icons/camera-sm@2x.png") 0 50% no-repeat;background-size:17px 12px}}h3.branching{background:transparent url("../images/icons/branch-sm.png") 4px 50% no-repeat;background-size:12px 15px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.branching{background:transparent url("../images/icons/branch-sm@2x.png") 4px 50% no-repeat;background-size:12px 15px}}h3.sharing{background:transparent url("../images/icons/sharing-sm.png") 2px 50% no-repeat;background-size:14px 14px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.sharing{background:transparent url("../images/icons/sharing-sm@2x.png") 2px 50% no-repeat;background-size:14px 14px}}h3.inspection{background:transparent url("../images/icons/inspection-sm.png") 1px 50% no-repeat;background-size:14px 14px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.inspection{background:transparent url("../images/icons/inspection-sm@2x.png") 1px 50% no-repeat;background-size:14px 14px}}h3.patching{background:transparent url("../images/icons/patching-sm.png") 1px 50% no-repeat;background-size:18px 11px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.patching{background:transparent url("../images/icons/patching-sm@2x.png") 1px 50% no-repeat;background-size:18px 11px}}h3.debugging{background:transparent url("../images/icons/debugging-sm.png") 1px 50% no-repeat;background-size:17px 16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.debugging{background:transparent url("../images/icons/debugging-sm@2x.png") 1px 50% no-repeat;background-size:17px 16px}}h3.email{background:transparent url("../images/icons/email-sm.png") 1px 50% no-repeat;background-size:17px 12px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.email{background:transparent url("../images/icons/email-sm@2x.png") 1px 50% no-repeat;background-size:17px 12px}}h3.external{background:transparent url("../images/icons/external-sm.png") 0 50% no-repeat;background-size:17px 15px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.external{background:transparent url("../images/icons/external-sm@2x.png") 0 50% no-repeat;background-size:17px 15px}}h3.admin{background:transparent url("../images/icons/admin-sm.png") 2px 50% no-repeat;background-size:16px 16px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.admin{background:transparent url("../images/icons/admin-sm@2x.png") 2px 50% no-repeat;background-size:16px 16px}}h3.server-admin{background:transparent url("../images/icons/server-admin-sm.png") 2px 50% no-repeat;background-size:15px 15px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.server-admin{background:transparent url("../images/icons/server-admin-sm@2x.png") 2px 50% no-repeat;background-size:15px 15px}}h3.plumbing{background:transparent url("../images/icons/plumbing-sm.png") 2px 50% no-repeat;background-size:17px 14px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){h3.plumbing{background:transparent url("../images/icons/plumbing-sm@2x.png") 2px 50% no-repeat;background-size:17px 14px}}#content h1>a.anchor,#content h2>a.anchor,#content h3>a.anchor,#content h4>a.anchor,#content dt.hdlist1>a.anchor{position:absolute;display:block;width:1.01em;padding-left:0.5em;margin-left:-1.5em;font-weight:lighter;text-align:center;visibility:hidden}#content h1>a.anchor:before,#content h2>a.anchor:before,#content h3>a.anchor:before,#content h4>a.anchor:before,#content dt.hdlist1>a.anchor:before{display:block;font-size:0.9em;content:"\00A7"}#content h1:hover>a.anchor,#content h2:hover>a.anchor,#content h3:hover>a.anchor,#content h4:hover>a.anchor,#content dt.hdlist1:hover>a.anchor{visibility:visible}#reference-version a{top:-5px}#reference-version a#reference-versions-trigger{float:left;margin-right:6px}#reference-version a#reference-topics-trigger{float:right}#reference-version a#reference-languages-trigger{float:right}#previous-versions-dropdown{width:330px;padding-top:6px}#previous-versions-dropdown header{padding:0 12px;margin:0;font-size:12px;font-weight:normal}#previous-versions-dropdown footer{padding:4px 12px;margin-top:0;font-size:11px;font-weight:normal;color:#4e443c;background-color:#eae9e0;-webkit-border-bottom-left-radius:3px;-moz-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-bottom-right-radius:3px;border-bottom-right-radius:3px}#previous-versions-dropdown footer p{all:unset;display:block;color:#9a9994}.windows.chrome #previous-versions-dropdown,.windows.ie8 #previous-versions-dropdown{width:370px}#l10n-versions-dropdown{width:250px;right:12px;padding:12px;font-weight:normal;line-height:1}#l10n-versions-dropdown header{padding:0 12px;margin:0;font-size:12px;font-weight:normal}#l10n-versions-dropdown footer{padding:4px 12px;margin-top:0;font-size:11px;font-weight:normal}#l10n-versions-dropdown footer a{padding:4px;margin-top:0;color:blue}#topics-dropdown{width:650px;right:12px;padding:12px;font-weight:normal;line-height:1}#topics-dropdown ul{margin-bottom:10px}#topics-dropdown ul:last-child{margin-bottom:0}#topics-dropdown li{padding-left:23px;line-height:17.6px}#topics-dropdown h3{min-height:20px;padding-top:4px;padding-left:23px;margin-bottom:8px;font-size:13px;line-height:15px}#topics-dropdown a{font-weight:normal;padding:0}#topics-dropdown a.active{font-weight:bold}ol.reference-previous-versions{margin-top:3px;margin-bottom:0;border-top:dotted 1px #e3e3e1}ol.reference-previous-versions li a{top:0 !important;display:block;padding:2px 12px;border-bottom:dotted 1px #e3e3e1}ol.reference-previous-versions li a:before{display:table;content:""}ol.reference-previous-versions li a:after{display:table;clear:both;content:""}ol.reference-previous-versions li a:hover{background-color:#edf7f8}ol.reference-previous-versions li a.more{font-size:11px}ol.reference-previous-versions li a span.version{float:left;min-width:40px}ol.reference-previous-versions li a span.diff{padding-right:16px;padding-left:12px}ol.reference-previous-versions li a span.diff img{display:inline-block;margin-right:-1px}ol.reference-previous-versions li a em.date{float:right;margin-right:150px;font-size:11px;font-style:normal;font-weight:normal;color:#9a9994}ol.reference-previous-versions li a.more{border-bottom:0}ol.reference-previous-versions li.no-change{position:absolute;right:0;z-index:10;width:auto;padding:0;margin-top:-6px;font-size:11px;font-weight:normal;line-height:1.2;color:#9a9994;text-align:center}ol.reference-previous-versions li.no-change:before{display:table;content:""}ol.reference-previous-versions li.no-change:after{display:table;clear:both;content:""}ol.reference-previous-versions li.no-change span{float:left;padding:0 5px;-webkit-border-top-left-radius:10px;-moz-border-top-left-radius:10px;border-top-left-radius:10px;-webkit-border-bottom-left-radius:10px;-moz-border-bottom-left-radius:10px;border-bottom-left-radius:10px;font-size:10px;font-style:italic;background-color:#f5f5f3}.callout.quickref,#book-container.quickref,.quickref.bottom-nav,#logo-license.quickref{background:transparent url("../images/icons/document.png") 14px 7px no-repeat;background-size:15px 21px;padding-left:36px !important}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.callout.quickref,#book-container.quickref,.quickref.bottom-nav,#logo-license.quickref{background:transparent url("../images/icons/document@2x.png") 14px 7px no-repeat;background-size:15px 21px}}.callout.quickref a,#book-container.quickref a,.quickref.bottom-nav a,#logo-license.quickref a{font-weight:bold}.callout.all-commands,#book-container.all-commands,.all-commands.bottom-nav,#logo-license.all-commands{background:transparent url("../images/icons/book.png") 14px 7px no-repeat;background-size:15px 21px;padding-left:36px !important}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.callout.all-commands,#book-container.all-commands,.all-commands.bottom-nav,#logo-license.all-commands{background:transparent url("../images/icons/book@2x.png") 14px 7px no-repeat;background-size:15px 21px}}.callout.all-commands a,#book-container.all-commands a,.all-commands.bottom-nav a,#logo-license.all-commands a{font-weight:bold}.callout.ref-manual,#book-container.ref-manual,.ref-manual.bottom-nav,#logo-license.ref-manual{background:transparent url("../images/icons/book.png") 24px 20px no-repeat;background-size:54px 72px;padding:20px 30px 20px 100px !important;background-color:#e9e8e0}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){.callout.ref-manual,#book-container.ref-manual,.ref-manual.bottom-nav,#logo-license.ref-manual{background:transparent url("../images/icons/book@2x.png") 24px 20px no-repeat;background-size:54px 72px}}.callout.ref-manual iframe,#book-container.ref-manual iframe,.ref-manual.bottom-nav iframe,#logo-license.ref-manual iframe{max-width:100%}.callout.ref-manual h3,#book-container.ref-manual h3,.ref-manual.bottom-nav h3,#logo-license.ref-manual h3{font-size:18px}.callout.ref-manual p,#book-container.ref-manual p,.ref-manual.bottom-nav p,#logo-license.ref-manual p{font-size:15px;line-height:1.3em}p.quickref{background:transparent url("../images/icons/document.png") 0 0 no-repeat;background-size:15px 21px;padding-left:22px !important;margin-top:-0.4em;margin-bottom:1em}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){p.quickref{background:transparent url("../images/icons/document@2x.png") 0 0 no-repeat;background-size:15px 21px}}p.quickref a{font-weight:bold}.reference-menu h3{padding-left:26px}.reference-menu ul{padding-left:28px}#video-container{padding:10px 10px 2px;margin-bottom:20px;background-color:#e9e8e0}code.command,#documentation #main p tt.command{user-select:all}code.command::before,#documentation #main p tt.command::before{content:'$ ';font-weight:bold}@media (max-width: 940px){#video-container iframe{width:100%}}@media (max-width: 640px){#video-container iframe{height:auto}}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}\::-webkit-input-placeholder{color:#9a9994 !important}input:-moz-placeholder{color:#9a9994 !important}input.inactive{color:#9a9994 !important}input.active{color:#4e443c !important}input,textarea{font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;outline:none}.windows.chrome input,.windows.chrome textarea,.windows.ie8 input,.windows.chrome textarea{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}form#search{position:absolute;top:10px;right:0;z-index:1000;width:262px;padding-left:32px;background:transparent url("../images/icons/search.png") 10px 50% no-repeat;background-size:17px 17px;background-color:#fcfcfa !important;border:solid 1px #ceccc5;-webkit-border-radius:20px;-moz-border-radius:20px;-ms-border-radius:20px;border-radius:20px;-webkit-box-shadow:inset 0 1px 4px #ddd;-moz-box-shadow:inset 0 1px 4px #ddd;box-shadow:inset 0 1px 4px #ddd}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){form#search{background:transparent url("../images/icons/search@2x.png") 10px 50% no-repeat;background-size:17px 17px}}form#search input{-webkit-border-radius:20px;-moz-border-radius:20px;-ms-border-radius:20px;border-radius:20px;width:100%;height:20px;margin-top:4px;margin-bottom:2px;line-height:1em;color:#4e443c;background-color:transparent;border:0}form#search.focus{border-color:#007175;background-color:#fff}@media (max-width: 940px){form#search{transform:translateX(-50%);left:50%;margin-top:7px;top:unset;width:92%}}@media (max-width: 640px){form#search{width:84%}form#search #search-text{padding:0.3rem 0.1rem}}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}#documentation #main p em{font-family:Courier, monospace !important;font-style:normal;font-weight:bold;color:#4e443c}#documentation #main p tt{display:inline;padding:1px}#documentation #main p.nutshell{padding:1em;background-color:#e8e7dd}#documentation #main .literalblock{margin-bottom:15px}#documentation #main .literalblock .content pre tt{display:block;padding:2px;font-family:Courier, monospace !important;background-color:#eee0b5}#documentation #main dt.hdlist1{font-family:Courier, monospace !important}#documentation #main div.verseblock pre.content{padding:1em;margin-bottom:1em;font-family:Courier, monospace !important;line-height:18px;color:#4e443c;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#e8e7dd}#documentation #main div.verseblock pre.content em{font-weight:bold;font-style:normal}#documentation #main .quoteblock{padding-left:1em;margin-left:1em;border-left:5px solid #d8d7cf}#documentation #main .quoteblock .content .paragraph p{color:#9a9994}#documentation #main .admonitionblock table{margin-bottom:1em}#documentation #main .admonitionblock table td{padding:0 1em}#documentation #main .admonitionblock table td .title{font-weight:bold;color:#f14e32}#documentation #main .admonitionblock table td:first-child{border-right:solid 2px #d8d7cf}#documentation #main #footer{color:#9a9994}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main #book-container,#main .bottom-nav,#main #logo-license{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main #book-container p,#main .bottom-nav p,#main #logo-license p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,#book-container.downloading,.downloading.bottom-nav,#logo-license.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,#book-container.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,#book-container.downloading p,.downloading.bottom-nav p,#logo-license.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,#book-container.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#book-chapters,#reference-version{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#book-chapters .light,#reference-version .light{font-weight:normal}.section-nav-container a,#book-chapters a,#reference-version a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#book-chapters .dropdown-panel,#reference-version .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #book-chapters a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}.ebooks img{padding:5px}#book-container{position:relative;padding-top:20px !important;padding-bottom:20px !important;background-color:transparent !important;overflow:hidden;border:solid 1px #efeeeb}#book-intro{position:absolute;top:40px;left:50px;width:200px;font-size:13px;text-align:center}#book-intro p{padding-bottom:20px}#book-intro img.creative-commons{display:block;margin:10px auto}#book-intro .license{font-size:11px;line-height:1.3;color:#9a9994}#book-intro a#open-book{display:block;margin-top:10px;margin-bottom:10px;font-weight:bold}#about-book{background:transparent url("../images/icons/info.png") 40px 1px no-repeat;background-size:18px 17px;display:none;padding-left:22px;font-size:12px;color:#9a9994;text-align:center;text-indent:40px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#about-book{background:transparent url("../images/icons/info@2x.png") 40px 1px no-repeat;background-size:18px 17px}}#about-book.visible{display:inline-block}ol.book-toc{margin:30px 36px}ol.book-toc li.chapter{margin-bottom:0.6em}ol.book-toc ol{list-style:none}ol.book-toc h2{color:#4e443c}ol.book-toc a{padding-left:4px}.book code,.book #documentation #main p tt,#documentation #main p .book tt{display:inline;padding:1px}.book pre code,.book pre #documentation #main p tt,#documentation #main p .book pre tt{display:block;overflow:auto}.book table.ref{width:100%;margin-bottom:10px}.book table.ref tr{border:1px solid;border-color:#777}.book table.ref th,td{padding:5px}.book table.ref th:nth-child(1),td:nth-child(1){width:25%;padding:5px}#book-chapters #chapters-dropdown{top:30px;padding:12px}#book-chapters ol{margin:0}#book-chapters ol li{line-height:17.6px}#book-chapters ol li h2{margin:14px 0;font-size:14px;line-height:normal}#book-chapters ol li ol{margin-left:0}#book-chapters ol li ol a{font-weight:normal}#book-chapters ol li ol a.active{font-weight:bold;color:#f14e32}.switch a{color:#aaa}.book-wrapper{float:right;margin:-20px 40px 0 40px}@media (min-width: 640px){.book-toc{width:60%}.book-wrapper{position:sticky;top:2rem}}@media (max-width: 480px){.book-wrapper{margin-right:0}}.edition2 *{box-sizing:border-box}.edition2 body{padding-top:80px;margin:0 auto;max-width:700px}.edition2 p,.edition2 dd{font-family:sans-serif;font-size:14px;line-height:22px;text-indent:0}.edition2 section[data-type="preface"]>h1+p,.edition2 div[data-type="part"]>h1+p,.edition2 section[data-type="chapter"]>h1+p,.edition2 section[data-type="chapter"]>h1+div.author p,.edition2 section[data-type="sect1"]>h1+p,.edition2 section[data-type="sect2"]>h2+p,.edition2 section[data-type="sect3"]>h3+p{text-indent:0px}.edition2 p a{display:inline}.edition2 section[data-type="titlepage"] h1{font-family:serif}.edition2 section[data-type="titlepage"] h2,.edition2 section[data-type="copyright-page"] h1{font-family:sans-serif}.edition2 section[data-type="halftitlepage"]{display:none}.edition2 section[data-type="titlepage"]{text-align:left;page-break-after:always}.edition2 section[data-type="titlepage"] h1{padding-bottom:10px;margin-top:100px;border-bottom:1px solid #333}.edition2 section[data-type="titlepage"] h1{font-size:2em;line-height:120%}.edition2 section[data-type="titlepage"] h2{margin-top:20px;font-size:1.2em;line-height:120%}.edition2 section[data-type="titlepage"] p:first-of-type{margin-top:82pt}.edition2 section[data-type="titlepage"] p{float:none;margin-top:0;margin-bottom:0;font-family:sans-serif;font-size:13pt;line-height:16pt;text-indent:0}.edition2 section[data-type="copyright-page"]{margin-top:100px;page-break-after:always}.edition2 section[data-type="copyright-page"] h1{font-size:0.8em}.edition2 section[data-type="copyright-page"] p{margin:0;font-family:sans-serif;font-size:0.8em;text-indent:0}.edition2 section[data-type="dedication"]{padding-top:100px;font-family:serif;font-style:italic;page-break-after:always;text-align:center}.edition2 nav[data-type="toc"] a{font-style:normal}.edition2 nav[data-type="toc"] li{list-style-type:none}.edition2 nav[data-type="toc"]>h1{margin-top:80px;margin-bottom:50px;font-size:1.5em;line-height:120%;text-align:center}.edition2 nav[data-type="toc"] a{text-decoration:none}.edition2 nav[data-type="toc"] li{font-family:sans-serif}.edition2 nav[data-type="toc"] li[data-type="chapter"],.edition2 nav[data-type="toc"] li[data-type="part"],.edition2 nav[data-type="toc"] li[data-type="appendix"]{margin-left:0;font-size:1em;line-height:120%;text-indent:0}.edition2 nav[data-type="toc"] li[data-type="part"]{margin-top:25px}.edition2 nav[data-type="toc"] li[data-type="part"]>a{display:inline-block;width:100%;border-bottom:1px solid #333}.edition2 nav[data-type="toc"] li[data-type="part"] ol{margin-left:0;text-indent:0}.edition2 nav[data-type="toc"] li[data-type="chapter"]{margin-top:20px}.edition2 nav[data-type="toc"] li[data-type="chapter"]:last-of-type,.edition2 nav[data-type="toc"] li[data-type="appendix"]{margin-bottom:20px}.edition2 nav[data-type="toc"] li[data-type="chapter"] ol{margin-left:20px;font-family:sans-serif;font-size:1em;line-height:120%;text-indent:-10px}.edition2 nav[data-type="toc"] li[data-type="chapter"] ol ol{margin-left:10px;text-indent:-10px}.edition2 nav[data-type="toc"] li[data-type="preface"],.edition2 nav[data-type="toc"] li[data-type="foreword"],.edition2 nav[data-type="toc"] li[data-type="glossary"],.edition2 nav[data-type="toc"] li[data-type="index"]{font-size:1em;line-height:120%}.edition2 nav[data-type="toc"] li[data-type="preface"] ol,.edition2 nav[data-type="toc"] li[data-type="foreword"] ol{display:none}.edition2 section[data-type="preface"],.edition2 div[data-type="part"],.edition2 section[data-type="chapter"],.edition2 section[data-type="appendix"]{page-break-after:always}.edition2 nav[data-type="toc"]>h1,.edition2 div[data-type="part"]>h1,.edition2 section[data-type="preface"]>h1,.edition2 section[data-type="chapter"]>h1,.edition2 section[data-type="appendix"]>h1,.edition2 section[data-type="sect1"] h1{font-family:serif;line-height:120%}.edition2 section[data-type="sect2"] h2,.edition2 section[data-type="sect3"] h3{font-family:sans-serif;line-height:120%}.edition2 section[data-type="preface"]>h1,.edition2 section[data-type="chapter"]>h1,.edition2 section[data-type="appendix"]>h1{margin-top:70px;font-size:1.8em;margin-bottom:40px;text-align:left}.edition2 section[data-type="sect1"] h1{margin-top:40px;margin-bottom:20px;font-size:1.5em}.edition2 section[data-type="sect2"] h2{margin-top:30px;margin-bottom:10px;font-size:1.1em}.edition2 section[data-type="sect3"] h3{margin-top:20px;margin-bottom:10px;font-size:1.1em}.edition2 div[data-type="part"]>h1{margin-top:100px;margin-bottom:70px;font-size:1.8em;text-align:center}.edition2 ul,.edition2 ol{margin:15px 0 15px 40px}.edition2 ul li,.edition2 ol li,.edition2 ul li p,.edition2 ol li p{margin-top:5px;font-family:sans-serif;font-size:1em;line-height:120%;text-indent:0}.edition2 dl{margin-bottom:15px}.edition2 dt{margin-top:15px;margin-bottom:4px;font-family:sans-serif;font-size:0.9em;line-height:120%}.edition2 dd{margin-left:20px;text-indent:0}.edition2 dd p{text-indent:0}.edition2 table{margin-top:30px;margin-bottom:30px;border-collapse:collapse;border-bottom:1px solid #888}.edition2 table caption{margin:0 0 20px;padding:0;font-family:sans-serif;font-size:0.8em;line-height:120%;text-align:left}.edition2 tr{border-width:0px}.edition2 th{margin-top:0;font-family:sans-serif;font-size:0.8em;line-height:120%;text-align:left;border-top:1px solid #888;border-bottom:1px solid #888}.edition2 th,.edition2 td{padding:6px}.edition2 td,.edition2 table p{font-family:sans-serif;font-size:12px;line-height:120%}.edition2 table p{margin-top:6px;text-indent:0}.edition2 td pre.programlisting,.edition2 td pre.screen,.edition2 td pre.literallayout,.edition2 td code,.edition2 td #documentation #main p tt,#documentation #main p .edition2 td tt{word-wrap:break-word;white-space:pre-wrap}.edition2 figure{display:block;padding:0;margin-top:30px;margin-bottom:30px;page-break-inside:avoid}.edition2 figure img{max-width:100%;padding:5px 0 5px 0;margin:0;border-top:1px solid #888;border-bottom:1px solid #888}.edition2 figcaption{display:block;font-family:serif;font-size:1em;font-style:italic;line-height:120%}.edition2 aside{padding:20px 20px 10px;margin:30px 0;background-color:#d8d8d8;border:1px solid #d8d8d8}.edition2 aside h5{padding:0;margin:0;font-family:sans-serif;font-size:1em;line-height:120%;text-align:center}.edition2 aside h6{font-family:sans-serif;font-size:0.9em;font-weight:bold;line-height:120%}.edition2 aside p{margin-top:6px;font-family:serif;font-size:1em;line-height:130%;text-indent:0}.edition2 div[data-type="note"],.edition2 div[data-type="warning"]{padding:10px 0;margin:30px;border-top:2px solid #888;border-bottom:1px solid #d8d8d8;page-break-inside:avoid}.edition2 div[data-type="note"] h1,.edition2 div[data-type="warning"] h1{padding:0;margin:4px 0;font-family:sans-serif;font-size:0.8em;font-weight:bold;color:#000;text-align:center;text-transform:uppercase}.edition2 div[data-type="note"] p,.edition2 div[data-type="warning"] p{font-family:serif;font-size:1em;line-height:120%;text-indent:0}.edition2 pre,.edition2 code,.edition2 #documentation #main p tt,#documentation #main p .edition2 tt{font-family:monospace}.edition2 pre{background:#eee}.edition2 pre code,.edition2 pre #documentation #main p tt,#documentation #main p .edition2 pre tt{display:inline;background:#eee;border:0}.edition2 pre{margin:10px 0;overflow-x:auto;font-size:0.9em;line-height:120%;color:#333}.edition2 code,.edition2 #documentation #main p tt,#documentation #main p .edition2 tt{padding:0;color:#333;background:#eee;border:1px solid #f5f5f5}.edition2 table pre{text-indent:0}.edition2 div[data-type="note"] code,.edition2 div[data-type="note"] #documentation #main p tt,#documentation #main p .edition2 div[data-type="note"] tt,.edition2 div[data-type="warning"] code,.edition2 div[data-type="warning"] #documentation #main p tt,#documentation #main p .edition2 div[data-type="warning"] tt,.edition2 aside code,.edition2 aside #documentation #main p tt,#documentation #main p .edition2 aside tt,.edition2 table code,.edition2 table #documentation #main p tt,#documentation #main p .edition2 table tt{font-size:inherit;line-height:inherit}.edition2 div[data-type="example"] h5{padding-bottom:6px;margin-top:30px;font-family:sans-serif;font-size:0.8em;line-height:120%;border-bottom:1px solid #d8d8d8}.edition2 blockquote{margin-right:30px;margin-left:30px;font-family:sans-serif;font-size:0.9em;line-height:130%}.edition2 blockquote p{text-indent:0}.edition2 div.navbar{position:fixed;top:0;left:0;width:100%;padding:10px 20px;font-family:sans-serif;background-color:#e8e8e8;border-bottom:1px solid #d8d8d8}.edition2 div.navbar h1{float:left;padding:0;margin:0;font-size:1em;font-weight:normal;color:#999}.edition2 div.navbar p{float:right;padding:0;margin:0;font-family:sans-serif;font-size:1em;font-weight:normal}.edition2 div.navbar p a{color:#999;text-decoration:none}@media screen and (min-width: 480px) and (max-width: 1024px){.edition2 body{width:100%;padding:20px}}@media screen and (max-width: 480px){.edition2 body{width:100%;padding:10px}.edition2 div.navbar{position:relative;padding:10px 20px;text-align:center;border-bottom:2px solid #e8e8e8;box-shadow:0 0 0 #f0f0f0}.edition2 div.navbar h1{float:none;margin-bottom:10px}.edition2 div.navbar p{float:none;text-indent:0}}.edition2 pre code.hll,.edition2 pre #documentation #main p tt.hll,#documentation #main p .edition2 pre tt.hll{background-color:#ffffcc}.edition2 pre code.c,.edition2 pre #documentation #main p tt.c,#documentation #main p .edition2 pre tt.c{color:#0099FF;font-style:italic}.edition2 pre code.err,.edition2 pre #documentation #main p tt.err,#documentation #main p .edition2 pre tt.err{color:#AA0000}.edition2 pre code.k,.edition2 pre #documentation #main p tt.k,#documentation #main p .edition2 pre tt.k{color:#006699;font-weight:bold}.edition2 pre code.o,.edition2 pre #documentation #main p tt.o,#documentation #main p .edition2 pre tt.o{color:#555555}.edition2 pre code.cm,.edition2 pre #documentation #main p tt.cm,#documentation #main p .edition2 pre tt.cm{color:#35586C;font-style:italic}.edition2 pre code.cp,.edition2 pre #documentation #main p tt.cp,#documentation #main p .edition2 pre tt.cp{color:#009999}.edition2 pre code.c1,.edition2 pre #documentation #main p tt.c1,#documentation #main p .edition2 pre tt.c1{color:#35586C;font-style:italic}.edition2 pre code.cs,.edition2 pre #documentation #main p tt.cs,#documentation #main p .edition2 pre tt.cs{color:#35586C;font-weight:bold;font-style:italic}.edition2 pre code.gd,.edition2 pre #documentation #main p tt.gd,#documentation #main p .edition2 pre tt.gd{background-color:#FFCCCC}.edition2 pre code.ge,.edition2 pre #documentation #main p tt.ge,#documentation #main p .edition2 pre tt.ge{font-style:italic}.edition2 pre code.gr,.edition2 pre #documentation #main p tt.gr,#documentation #main p .edition2 pre tt.gr{color:#FF0000}.edition2 pre code.gh,.edition2 pre #documentation #main p tt.gh,#documentation #main p .edition2 pre tt.gh{color:#003300;font-weight:bold}.edition2 pre code.gi,.edition2 pre #documentation #main p tt.gi,#documentation #main p .edition2 pre tt.gi{background-color:#CCFFCC}.edition2 pre code.go,.edition2 pre #documentation #main p tt.go,#documentation #main p .edition2 pre tt.go{color:#000000}.edition2 pre code.gp,.edition2 pre #documentation #main p tt.gp,#documentation #main p .edition2 pre tt.gp{color:#000099;font-weight:bold}.edition2 pre code.gs,.edition2 pre #documentation #main p tt.gs,#documentation #main p .edition2 pre tt.gs{font-weight:bold}.edition2 pre code.gu,.edition2 pre #documentation #main p tt.gu,#documentation #main p .edition2 pre tt.gu{color:#003300;font-weight:bold}.edition2 pre code.gt,.edition2 pre #documentation #main p tt.gt,#documentation #main p .edition2 pre tt.gt{color:#99CC66}.edition2 pre code.kc,.edition2 pre #documentation #main p tt.kc,#documentation #main p .edition2 pre tt.kc{color:#006699;font-weight:bold}.edition2 pre code.kd,.edition2 pre #documentation #main p tt.kd,#documentation #main p .edition2 pre tt.kd{color:#006699;font-weight:bold}.edition2 pre code.kn,.edition2 pre #documentation #main p tt.kn,#documentation #main p .edition2 pre tt.kn{color:#006699;font-weight:bold}.edition2 pre code.kp,.edition2 pre #documentation #main p tt.kp,#documentation #main p .edition2 pre tt.kp{color:#006699}.edition2 pre code.kr,.edition2 pre #documentation #main p tt.kr,#documentation #main p .edition2 pre tt.kr{color:#006699;font-weight:bold}.edition2 pre code.kt,.edition2 pre #documentation #main p tt.kt,#documentation #main p .edition2 pre tt.kt{color:#007788;font-weight:bold}.edition2 pre code.m,.edition2 pre #documentation #main p tt.m,#documentation #main p .edition2 pre tt.m{color:#FF6600}.edition2 pre code.s,.edition2 pre #documentation #main p tt.s,#documentation #main p .edition2 pre tt.s{color:#CC3300}.edition2 pre code.na,.edition2 pre #documentation #main p tt.na,#documentation #main p .edition2 pre tt.na{color:#330099}.edition2 pre code.nb,.edition2 pre #documentation #main p tt.nb,#documentation #main p .edition2 pre tt.nb{color:#336666}.edition2 pre code.nc,.edition2 pre #documentation #main p tt.nc,#documentation #main p .edition2 pre tt.nc{color:#00AA88;font-weight:bold}.edition2 pre code.no,.edition2 pre #documentation #main p tt.no,#documentation #main p .edition2 pre tt.no{color:#336600}.edition2 pre code.nd,.edition2 pre #documentation #main p tt.nd,#documentation #main p .edition2 pre tt.nd{color:#9999FF}.edition2 pre code.ni,.edition2 pre #documentation #main p tt.ni,#documentation #main p .edition2 pre tt.ni{color:#999999;font-weight:bold}.edition2 pre code.ne,.edition2 pre #documentation #main p tt.ne,#documentation #main p .edition2 pre tt.ne{color:#CC0000;font-weight:bold}.edition2 pre code.nf,.edition2 pre #documentation #main p tt.nf,#documentation #main p .edition2 pre tt.nf{color:#CC00FF}.edition2 pre code.nl,.edition2 pre #documentation #main p tt.nl,#documentation #main p .edition2 pre tt.nl{color:#9999FF}.edition2 pre code.nn,.edition2 pre #documentation #main p tt.nn,#documentation #main p .edition2 pre tt.nn{color:#00CCFF;font-weight:bold}.edition2 pre code.nt,.edition2 pre #documentation #main p tt.nt,#documentation #main p .edition2 pre tt.nt{color:#330099;font-weight:bold}.edition2 pre code.nv,.edition2 pre #documentation #main p tt.nv,#documentation #main p .edition2 pre tt.nv{color:#003333}.edition2 pre code.ow,.edition2 pre #documentation #main p tt.ow,#documentation #main p .edition2 pre tt.ow{color:#000000;font-weight:bold}.edition2 pre code.w,.edition2 pre #documentation #main p tt.w,#documentation #main p .edition2 pre tt.w{color:#bbbbbb}.edition2 pre code.mf,.edition2 pre #documentation #main p tt.mf,#documentation #main p .edition2 pre tt.mf{color:#FF6600}.edition2 pre code.mh,.edition2 pre #documentation #main p tt.mh,#documentation #main p .edition2 pre tt.mh{color:#FF6600}.edition2 pre code.mi,.edition2 pre #documentation #main p tt.mi,#documentation #main p .edition2 pre tt.mi{color:#FF6600}.edition2 pre code.mo,.edition2 pre #documentation #main p tt.mo,#documentation #main p .edition2 pre tt.mo{color:#FF6600}.edition2 pre code.sb,.edition2 pre #documentation #main p tt.sb,#documentation #main p .edition2 pre tt.sb{color:#CC3300}.edition2 pre code.sc,.edition2 pre #documentation #main p tt.sc,#documentation #main p .edition2 pre tt.sc{color:#CC3300}.edition2 pre code.sd,.edition2 pre #documentation #main p tt.sd,#documentation #main p .edition2 pre tt.sd{color:#CC3300;font-style:italic}.edition2 pre code.s2,.edition2 pre #documentation #main p tt.s2,#documentation #main p .edition2 pre tt.s2{color:#CC3300}.edition2 pre code.se,.edition2 pre #documentation #main p tt.se,#documentation #main p .edition2 pre tt.se{color:#CC3300;font-weight:bold}.edition2 pre code.sh,.edition2 pre #documentation #main p tt.sh,#documentation #main p .edition2 pre tt.sh{color:#CC3300}.edition2 pre code.si,.edition2 pre #documentation #main p tt.si,#documentation #main p .edition2 pre tt.si{color:#AA0000}.edition2 pre code.sx,.edition2 pre #documentation #main p tt.sx,#documentation #main p .edition2 pre tt.sx{color:#CC3300}.edition2 pre code.sr,.edition2 pre #documentation #main p tt.sr,#documentation #main p .edition2 pre tt.sr{color:#33AAAA}.edition2 pre code.s1,.edition2 pre #documentation #main p tt.s1,#documentation #main p .edition2 pre tt.s1{color:#CC3300}.edition2 pre code.ss,.edition2 pre #documentation #main p tt.ss,#documentation #main p .edition2 pre tt.ss{color:#AA6600}.edition2 pre code.bp,.edition2 pre #documentation #main p tt.bp,#documentation #main p .edition2 pre tt.bp{color:#336666}.edition2 pre code.vc,.edition2 pre #documentation #main p tt.vc,#documentation #main p .edition2 pre tt.vc{color:#003333}.edition2 pre code.vg,.edition2 pre #documentation #main p tt.vg,#documentation #main p .edition2 pre tt.vg{color:#003333}.edition2 pre code.vi,.edition2 pre #documentation #main p tt.vi,#documentation #main p .edition2 pre tt.vi{color:#003333}.edition2 pre code.il,.edition2 pre #documentation #main p tt.il,#documentation #main p .edition2 pre tt.il{color:#FF6600}.edition2 pre code.g,.edition2 pre #documentation #main p tt.g,#documentation #main p .edition2 pre tt.g{color:#005500}.edition2 pre code.l,.edition2 pre #documentation #main p tt.l,#documentation #main p .edition2 pre tt.l{color:#CC6600}.edition2 pre code.l,.edition2 pre #documentation #main p tt.l,#documentation #main p .edition2 pre tt.l{color:#FF9900}.edition2 pre code.n,.edition2 pre #documentation #main p tt.n,#documentation #main p .edition2 pre tt.n{color:#000088}.edition2 pre code.nx,.edition2 pre #documentation #main p tt.nx,#documentation #main p .edition2 pre tt.nx{color:#000088}.edition2 pre code.py,.edition2 pre #documentation #main p tt.py,#documentation #main p .edition2 pre tt.py{color:#9966FF}.edition2 pre code.p,.edition2 pre #documentation #main p tt.p,#documentation #main p .edition2 pre tt.p{color:#000000}.edition2 pre code.x,.edition2 pre #documentation #main p tt.x,#documentation #main p .edition2 pre tt.x{color:#FF0066}.edition2 pre[data-code-language="console"]{padding:10px;background:#eee}.edition2 pre[data-code-language="console"] code.go,.edition2 pre[data-code-language="console"] #documentation #main p tt.go,#documentation #main p .edition2 pre[data-code-language="console"] tt.go{font-size:1.0em;color:#555}.edition2 pre[data-code-language="console"] code.gp,.edition2 pre[data-code-language="console"] #documentation #main p tt.gp,#documentation #main p .edition2 pre[data-code-language="console"] tt.gp{font-weight:bold;color:#009900}body{padding:0;margin:0;font-family:Adelle, Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif;font-size:14px;line-height:22px;color:#4e443c;background:#f0efe7 url("../images/bg/body.jpg")}.windows.chrome body,.windows.ie8 body{font-family:Roboto Slab, DejaVu Serif, Georgia, Times New Roman, sans-serif !important}.inner{position:relative;width:940px;margin:0 auto;overflow:visible}.inner:before{display:table;content:""}.inner:after{display:table;clear:both;content:""}aside{float:left;width:218px;margin-bottom:35px}.banner-message{position:relative;padding:1em 100px;margin-bottom:30px;font-size:100%;color:#855;background-color:#fcbda5}.banner-message a{color:#c22}.banner-message .dismiss{position:absolute;top:0;right:0;width:2em;padding:0;line-height:2em;background:none;border:0}#content{float:right;width:702px}#main{padding:22px;margin-bottom:35px;background-color:#fcfcfa;border:solid 1px #e2e0d8;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px}#main .two-column:before{display:table;content:""}#main .two-column:after{display:table;clear:both;content:""}#main .two-column .column-left{width:47%;float:left}#main .two-column .column-right{width:47%;float:right}#main .callout,#main .bottom-nav,#main #logo-license,#main #book-container{background-color:#e9e8e0;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 14px 4px;margin-bottom:1.4em}#main .callout p,#main .bottom-nav p,#main #logo-license p,#main #book-container p{margin-bottom:0}#main img{max-width:100%;height:auto}#masthead{height:295px;margin-top:-20px;margin-bottom:2em;background:transparent url("../images/bg/isometric-grid.png") top right repeat;background-size:35px 21px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){#masthead{background:transparent url("../images/bg/isometric-grid@2x.png") top right repeat;background-size:35px 21px}}#masthead .inner{padding-top:20px}#masthead .inner p{width:558px;margin-bottom:1.2em;font-size:18px;line-height:26.4px}#masthead .inner .promo{font-weight:bold}#masthead .inner .promo img{position:relative;top:-6px}#masthead .inner img.illustration{position:absolute;right:-30px;top:24px}header{position:relative;padding-bottom:26px;margin-top:14px}header #tagline{position:absolute;top:11px;left:120px;display:block;margin-top:1px;font-size:24px;line-height:24px;color:#9a9994}header #tagline em{letter-spacing:1px}aside nav ul{margin-bottom:1.4em;margin-left:0;font-size:16px;font-weight:bold;list-style:none}aside nav ul li{margin-bottom:0.5em}aside nav ul li a{color:#413932}aside nav ul li a.active,aside nav ul li a:hover{color:#f14e32}aside nav ul li ul{display:none;margin-top:0.3em;margin-left:20px;font-size:13px;font-weight:normal}aside nav ul li ul li{margin-bottom:0}aside nav ul li ul li a.active{font-weight:bold}aside nav ul li ul.expanded{display:block}.bottom-nav{margin-top:2em;font-weight:bold}.bottom-nav:before{display:table;content:""}.bottom-nav:after{display:table;clear:both;content:""}.bottom-nav .previous{float:left}.bottom-nav .next{float:right}section.about.current{display:block}section.about .bottom-nav{display:none}p.center{text-align:center}#logo-license{padding:20px !important;margin-top:2em}#logo-license p{font-size:12px;line-height:1.4;color:#9a9994}#logo-license p+p{margin-top:14px}#logo-license img{float:left;margin-right:20px}.callout.downloading,.downloading.bottom-nav,#logo-license.downloading,#book-container.downloading{background:#e9e8e0 url(../images/icons/download.png) 24px 24px no-repeat;padding:20px 30px 20px 100px !important}.callout.downloading h3,.downloading.bottom-nav h3,#logo-license.downloading h3,#book-container.downloading h3{font-size:18px;color:#f14e32}.callout.downloading p,.downloading.bottom-nav p,#logo-license.downloading p,#book-container.downloading p{margin-bottom:15px !important;font-size:15px;line-height:1.3em}.callout.downloading p.small,.downloading.bottom-nav p.small,#logo-license.downloading p.small,#book-container.downloading p.small{margin-bottom:0 !important;font-size:12px;line-height:1.4;color:#9a9994}.section-nav-container,#reference-version,#book-chapters{position:relative;background-color:#ebe9e1;background-color:rgba(223,221,213,0.33);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;padding:8px 12px 6px;margin-bottom:10px;font-size:13px;font-weight:bold}.section-nav-container .light,#reference-version .light,#book-chapters .light{font-weight:normal}.section-nav-container a,#reference-version a,#book-chapters a{font-weight:bold;position:relative}.section-nav-container .dropdown-panel,#reference-version .dropdown-panel,#book-chapters .dropdown-panel{top:33px}.section-nav-container .dropdown-panel .three-column:before,#reference-version .dropdown-panel .three-column:before,#book-chapters .dropdown-panel .three-column:before{display:table;content:""}.section-nav-container .dropdown-panel .three-column:after,#reference-version .dropdown-panel .three-column:after,#book-chapters .dropdown-panel .three-column:after{display:table;clear:both;content:""}.section-nav-container .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-left{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-middle{float:left;width:31%;padding-right:3%}.section-nav-container .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-right,#book-chapters .dropdown-panel .three-column .column-right{float:left;width:31%}a.dropdown-trigger{padding:4px 5px;border:solid 1px transparent}a.dropdown-trigger.active{position:relative;z-index:200;background-color:#fff !important;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;border:solid 1px #c6c4b8;border-bottom:0}.dropdown-panel{position:absolute;z-index:199;display:none;background-color:#fff;border:solid 1px #c6c4b8;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px #ccc;-moz-box-shadow:0 1px 2px #ccc;box-shadow:0 1px 2px #ccc}.dropdown-panel.left{-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0}.dropdown-panel.right{-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0}footer{padding:20px 0 40px;margin-top:35px;clear:both;font-size:12px;line-height:15.4px;color:#9a9994;border-top:solid 1px #d8d7cf}footer:before{display:table;content:""}footer:after{display:table;clear:both;content:""}footer a{color:#403f3c}footer a:hover{color:#0b0b0a}footer .site-source{float:left;padding-left:46px;background:transparent url("../images/icons/code.png") 0 2px no-repeat;background-size:38px 23px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){footer .site-source{background:transparent url("../images/icons/code@2x.png") 0 2px no-repeat;background-size:38px 23px}}footer .sfc-member{float:right;text-align:right}table.benchmarks{width:100%;padding:20px;margin-bottom:20px}table.benchmarks tr th.right{text-align:center}table.benchmarks tr td.desc{font-size:0.8em;color:#888}table.benchmarks tr td.number{font-family:monospace;text-align:right}table.benchmarks tr td{padding:0 10px}.scrollToTop{-webkit-border-radius:50px;-moz-border-radius:50px;-ms-border-radius:50px;border-radius:50px;display:none;position:fixed;background-color:rgba(223,221,213,0.33);right:20px;bottom:6.25rem;padding:0.8rem;height:20px;transition:background-color 0.2s;width:20px}.scrollToTop:hover{background-color:rgba(250,250,250,0.9);-webkit-box-shadow:2px;-moz-box-shadow:2px;box-shadow:2px}.scrollToTop:hover::before{transform:translateX(-50%);left:50%;width:0;height:0;color:var(--color-neutral-emphasis-plus);content:"";border:6px solid transparent;border-color:#333333 transparent transparent;top:-0.55rem;position:absolute}.scrollToTop:hover::after{transform:translateX(-50%);left:50%;top:-2rem;border-radius:4px;position:absolute;content:attr(data-label);word-wrap:break-word;white-space:pre;padding:.5em .75em;color:#e9e8e0;background-color:#333333;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.no-js.scrollToTop{display:block}@media (max-width: 940px){.responsive-table{overflow-x:auto}.center img{height:100%}header{padding-bottom:2.5rem}header a,header span{padding-left:1rem;margin-bottom:10px}#home .inner>header{padding-bottom:2rem}#content{width:100%}.inner{width:100%}#content-wrapper{padding:0.8rem}#masthead{height:unset}#masthead .inner{display:flex;margin-top:1.8rem}#masthead .inner div:first-of-type{padding:1rem}#masthead .inner .illustration-wrapper{display:flex;align-items:center}#masthead .inner p{width:unset}#masthead .inner img.illustration{position:unset;right:unset;top:unset;max-height:100%}footer{padding-left:1rem;padding-right:1rem}}@media (max-width: 640px){header{padding-bottom:3rem}header #tagline{font-size:0.8rem;top:0;padding-right:1rem}#home .inner>header{padding-bottom:2.5rem}#masthead .inner{flex-direction:column-reverse}#masthead .illustration-wrapper{display:flex;justify-content:center;overflow:hidden}#masthead .illustration-wrapper .illustration{width:80%;height:100%}#main>.two-column .column-right{position:relative;display:flex;justify-content:center}#main .two-column{display:flex;flex-direction:column}#main .two-column .column-left,#main .two-column .column-right{width:100%}#book-chapters .dropdown-panel,#reference-version .dropdown-panel{width:unset}#book-chapters .dropdown-panel .three-column,#reference-version .dropdown-panel .three-column{display:flex;flex-direction:column;height:70vh;overflow-y:scroll;overflow-x:hidden}#book-chapters .dropdown-panel .three-column .column-left,#book-chapters .dropdown-panel .three-column .column-middle,#book-chapters .dropdown-panel .three-column .column-right,#reference-version .dropdown-panel .three-column .column-left,#reference-version .dropdown-panel .three-column .column-middle,#reference-version .dropdown-panel .three-column .column-right{width:100%;max-width:300px}#book-chapters .dropdown-panel .three-column .unstyled a,#book-chapters .dropdown-panel .three-column ul.stackoverflow a,#book-chapters .dropdown-panel .three-column ol#about-nav a,#book-chapters .dropdown-panel .three-column .content-list a,#book-chapters .dropdown-panel .three-column ul.books-list a,#book-chapters .dropdown-panel .three-column ul.video-thumbnails a,#book-chapters .dropdown-panel .three-column ul.gui-thumbnails a,#book-chapters .dropdown-panel .three-column .section-nav-container a,#book-chapters .dropdown-panel .three-column #download-next-steps a,#book-chapters .dropdown-panel .three-column #search-results table ul a,#search-results table #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column ol.full-search-results a,#book-chapters .dropdown-panel .three-column #front-nav ul a,#front-nav #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #companies-projects ul a,#companies-projects #book-chapters .dropdown-panel .three-column ul a,#book-chapters .dropdown-panel .three-column #reference-version a,#book-chapters .dropdown-panel .three-column ol.reference-previous-versions a,#book-chapters .dropdown-panel .three-column ol.book-toc a,#book-chapters .dropdown-panel .three-column #book-chapters a,#reference-version .dropdown-panel .three-column .unstyled a,#reference-version .dropdown-panel .three-column ul.stackoverflow a,#reference-version .dropdown-panel .three-column ol#about-nav a,#reference-version .dropdown-panel .three-column .content-list a,#reference-version .dropdown-panel .three-column ul.books-list a,#reference-version .dropdown-panel .three-column ul.video-thumbnails a,#reference-version .dropdown-panel .three-column ul.gui-thumbnails a,#reference-version .dropdown-panel .three-column .section-nav-container a,#reference-version .dropdown-panel .three-column #download-next-steps a,#reference-version .dropdown-panel .three-column #search-results table ul a,#search-results table #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column ol.full-search-results a,#reference-version .dropdown-panel .three-column #front-nav ul a,#front-nav #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #companies-projects ul a,#companies-projects #reference-version .dropdown-panel .three-column ul a,#reference-version .dropdown-panel .three-column #reference-version a,#reference-version .dropdown-panel .three-column ol.reference-previous-versions a,#reference-version .dropdown-panel .three-column ol.book-toc a,#reference-version .dropdown-panel .three-column #book-chapters a{padding:0.15rem 0;display:block}#book-chapters .dropdown-panel .three-column .chapter h2,#reference-version .dropdown-panel .three-column .chapter h2{display:flex;align-items:center}#book-chapters .dropdown-panel .three-column .chapter h2 a,#reference-version .dropdown-panel .three-column .chapter h2 a{padding-left:5px}#book-chapters .dropdown-panel .three-column .chapter ol li,#reference-version .dropdown-panel .three-column .chapter ol li{display:flex;align-items:center;margin-bottom:6px;padding:0.45rem 0}#book-chapters .dropdown-panel .three-column .chapter ol li a,#reference-version .dropdown-panel .three-column .chapter ol li a{padding-left:5px}footer{display:flex;justify-content:center;flex-direction:column;align-items:center}footer .site-source{margin-bottom:1rem}.scrollToTop{bottom:6rem}}.content-list,ul.books-list,ul.video-thumbnails,ul.gui-thumbnails{margin-left:0}.content-list li,ul.books-list li,ul.video-thumbnails li,ul.gui-thumbnails li{margin-bottom:1em}.content-list .description,ul.books-list .description,ul.video-thumbnails .description,ul.gui-thumbnails .description{font-size:12px;line-height:15.4px}ul.video-thumbnails,ul.gui-thumbnails{margin-top:1em}ul.video-thumbnails li,ul.gui-thumbnails li{margin-bottom:2em}ul.video-thumbnails li img,ul.gui-thumbnails li img{display:block;padding:3px;margin-bottom:5px;border:solid 1px #d8d7cf}ul.gui-thumbnails li{display:inline-block;width:49%}ul.gui-thumbnails li.masked{display:none}ul.books-list li{padding-left:125px;height:150px}ul.books-list li:before{display:table;content:""}ul.books-list li:after{display:table;clear:both;content:""}ul.books-list li img{float:left;width:109px;max-height:150px;margin-right:-125px;margin-left:-125px;border:solid 1px #b7b7b7}ul.books-list li img.creative-commons{display:block;float:none;width:auto;margin-top:2em;margin-right:0;margin-left:0;border:0}ol#about-nav:before{display:table;content:""}ol#about-nav:after{display:table;clear:both;content:""}ol#about-nav li{display:inline;float:left;width:80px;height:85px;padding-right:5px;margin-right:7px}ol#about-nav li:last-child{margin-right:0}ol#about-nav li a{display:block;width:60px;height:80px;padding:0 15px;font-size:13px;line-height:20px;text-align:center;color:#4e443c;opacity:0.9;background:transparent url("../images/icons/nav-circles.png") top right no-repeat;background-size:90px 180px}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){ol#about-nav li a{background:transparent url("../images/icons/nav-circles@2x.png") top right no-repeat;background-size:90px 180px}}ol#about-nav li a.current{background:transparent url("../images/icons/nav-circles.png") 0 -90px no-repeat;background-size:90px 180px;color:#fff;opacity:1}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1){ol#about-nav li a.current{background:transparent url("../images/icons/nav-circles@2x.png") 0 -90px no-repeat;background-size:90px 180px}}ol#about-nav li a.one-line{height:55px;padding-top:35px}ol#about-nav li a.two-line{height:62px;padding-top:28px}ol#about-nav li a.three-line{height:73px;padding-top:17px}ol#about-nav li a:hover{opacity:1}ul.stackoverflow{font-size:12px}ul.stackoverflow li{margin-bottom:1em}ul.stackoverflow a{display:block;line-height:1.2;font-weight:bold}ul.stackoverflow span{display:block;color:#9a9994}ul.stackoverflow span strong{color:#81807a}ul.stackoverflow span em{color:#cccbc8}table.binaries td{position:relative;width:auto;padding:8px 20px 6px 0}table.binaries a{font-weight:bold;border:solid 1px transparent}@media (max-width: 940px){ol#about-nav{display:flex;flex-wrap:wrap;justify-content:space-between}}@media (max-width: 640px){ol#about-nav{justify-content:unset}ol#about-nav li{padding-right:0;margin-right:0.6rem;flex-basis:29%;margin-bottom:1rem}}code,#documentation #main p tt{display:inline;padding:0 5px;word-break:break-all}pre{background-color:#fff;border:solid 1px #efeee6;border-radius:3px;color:#f14e32;display:block;font-family:Courier, monospace;line-height:18px;margin-bottom:1em;overflow:auto;padding:10px 15px 13px}.d-flex{display:flex}
@@ -1,20 +0,0 @@
1
- /* Modernizr 2.5.3 (Custom Build) | MIT & BSD
2
- * Build: http://www.modernizr.com/download/#-fontface-input-inputtypes-shiv-cssclasses-addtest-teststyles-load
3
- */
4
- ;window.Modernizr=function(a,b,c){function w(a){j.cssText=a}function x(a,b){return w(prefixes.join(a+";")+(b||""))}function y(a,b){return typeof a===b}function z(a,b){return!!~(""+a).indexOf(b)}function A(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:y(f,"function")?f.bind(d||b):f}return!1}function C(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)p[c[d]]=c[d]in k;return p.list&&(p.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),p}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(k),g.offsetWidth,e=k.value!=l,g.removeChild(k)):e=k.value!=l)),o[a[d]]=!!e;return o}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.5.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n={},o={},p={},q=[],r=q.slice,s,t=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["&#173;","<style>",a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},u={}.hasOwnProperty,v;!y(u,"undefined")&&!y(u.call,"undefined")?v=function(a,b){return u.call(a,b)}:v=function(a,b){return b in a&&y(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=r.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(r.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(r.call(arguments)))};return e});var B=function(a,c){var d=a.join(""),f=c.length;t(d,function(a,c){var d=b.styleSheets[b.styleSheets.length-1],g=d?d.cssRules&&d.cssRules[0]?d.cssRules[0].cssText:d.cssText||"":"",h=a.childNodes,i={};while(f--)i[h[f].id]=h[f];e.fontface=/src/i.test(g)&&g.indexOf(c.split(" ")[0])===0},f,c)}(['@font-face {font-family:"font";src:url("https://")}'],["fontface"]);n.fontface=function(){return e.fontface};for(var D in n)v(n,D)&&(s=D.toLowerCase(),e[s]=n[D](),q.push((e[s]?"":"no-")+s));return e.input||C(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)v(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},w(""),i=k=null,function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e.testStyles=t,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+q.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
5
-
6
- Modernizr.addTest('webkit', function(){
7
- return RegExp(" AppleWebKit/").test(navigator.userAgent);
8
- });
9
-
10
- Modernizr.addTest('chrome', function(){
11
- return RegExp(" Chrome/").test(navigator.userAgent);
12
- });
13
-
14
- Modernizr.addTest('windows', function(){
15
- return RegExp("Win").test(navigator.platform);
16
- });
17
-
18
- Modernizr.addTest('ie8', function(){
19
- return RegExp("MSIE 8").test(navigator.userAgent);
20
- });