mumuki-laboratory 8.1.1 → 8.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -8
  3. data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +2 -1
  4. data/app/assets/javascripts/mumuki_laboratory/application/button.js +4 -6
  5. data/app/assets/javascripts/mumuki_laboratory/application/codemirror-builder.js +3 -3
  6. data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +6 -6
  7. data/app/assets/javascripts/mumuki_laboratory/application/console.js +2 -2
  8. data/app/assets/javascripts/mumuki_laboratory/application/discussions.js +7 -7
  9. data/app/assets/javascripts/mumuki_laboratory/application/editors.js +1 -1
  10. data/app/assets/javascripts/mumuki_laboratory/application/elipsis.js +1 -1
  11. data/app/assets/javascripts/mumuki_laboratory/application/events.js +2 -2
  12. data/app/assets/javascripts/mumuki_laboratory/application/exercise.js +2 -2
  13. data/app/assets/javascripts/mumuki_laboratory/application/gamification.js +13 -3
  14. data/app/assets/javascripts/mumuki_laboratory/application/i18n.js +73 -0
  15. data/app/assets/javascripts/mumuki_laboratory/application/inputs.js +1 -1
  16. data/app/assets/javascripts/mumuki_laboratory/application/kids.js +26 -5
  17. data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +13 -8
  18. data/app/assets/javascripts/mumuki_laboratory/application/messages.js +6 -6
  19. data/app/assets/javascripts/mumuki_laboratory/application/mu-modal-carrousel.js +1 -1
  20. data/app/assets/javascripts/mumuki_laboratory/application/multiple-choice.js +1 -1
  21. data/app/assets/javascripts/mumuki_laboratory/application/multiple-files.js +3 -3
  22. data/app/assets/javascripts/mumuki_laboratory/application/multiple-scenarios.js +1 -1
  23. data/app/assets/javascripts/mumuki_laboratory/application/pin.js +1 -1
  24. data/app/assets/javascripts/mumuki_laboratory/application/primary.js +6 -4
  25. data/app/assets/javascripts/mumuki_laboratory/application/progress.js +1 -1
  26. data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +29 -2
  27. data/app/assets/javascripts/mumuki_laboratory/application/speech-bubble-renderer.js +4 -4
  28. data/app/assets/javascripts/mumuki_laboratory/application/submission.js +72 -48
  29. data/app/assets/javascripts/mumuki_laboratory/application/submissions-store.js +3 -3
  30. data/app/assets/javascripts/mumuki_laboratory/application/sync-mode.js +2 -2
  31. data/app/assets/javascripts/mumuki_laboratory/application/timer.js +1 -1
  32. data/app/assets/stylesheets/mumuki_laboratory/application/_layout.scss +7 -7
  33. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +4 -0
  34. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +1 -0
  35. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_overlap.scss +0 -4
  36. data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +4 -0
  37. data/app/controllers/chapters_controller.rb +9 -5
  38. data/app/controllers/concerns/with_user_discussion_validation.rb +6 -0
  39. data/app/controllers/discussions_controller.rb +0 -6
  40. data/app/controllers/guide_container_controller.rb +2 -7
  41. data/app/helpers/assignment_result_helper.rb +1 -1
  42. data/app/helpers/contextualization_result_helper.rb +0 -8
  43. data/app/helpers/discussions_helper.rb +12 -4
  44. data/app/helpers/editor_tabs_helper.rb +1 -1
  45. data/app/helpers/icons_helper.rb +1 -1
  46. data/app/helpers/links_helper.rb +3 -3
  47. data/app/helpers/menu_bar_helper.rb +9 -1
  48. data/app/helpers/overlapped_buttons_helper.rb +6 -2
  49. data/app/views/book/show.html.erb +2 -2
  50. data/app/views/book_discussions/index.html.erb +3 -1
  51. data/app/views/chapters/show.html.erb +21 -9
  52. data/app/views/complements/show.html.erb +1 -1
  53. data/app/views/discussions/_message.html.erb +2 -2
  54. data/app/views/discussions/index.html.erb +11 -4
  55. data/app/views/exams/show.html.erb +1 -1
  56. data/app/views/exercise_solutions/_kids_level_up.html.erb +1 -1
  57. data/app/views/exercises/_exercise_assignment.html.erb +1 -1
  58. data/app/views/exercises/_read_only.html.erb +1 -1
  59. data/app/views/exercises/show.html.erb +2 -2
  60. data/app/views/layouts/_copyright.html.erb +1 -1
  61. data/app/views/layouts/_discussions.html.erb +0 -4
  62. data/app/views/layouts/_guide.html.erb +9 -36
  63. data/app/views/layouts/_guide_container.html.erb +28 -0
  64. data/app/views/layouts/_guide_title_icons.html.erb +9 -0
  65. data/app/views/layouts/_kids.html.erb +4 -4
  66. data/app/views/layouts/_kindergarten.html.erb +5 -5
  67. data/app/views/layouts/_social_media.html.erb +4 -4
  68. data/app/views/layouts/_timer.html.erb +1 -1
  69. data/app/views/layouts/application.html.erb +31 -27
  70. data/app/views/layouts/embedded.html.erb +14 -11
  71. data/app/views/layouts/exercise_inputs/editors/_code.html.erb +1 -6
  72. data/app/views/layouts/exercise_inputs/editors/_multiple_files.html.erb +4 -9
  73. data/app/views/layouts/exercise_inputs/forms/_problem_form.html.erb +1 -1
  74. data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +1 -1
  75. data/app/views/layouts/modals/_guide_corollary.html.erb +13 -3
  76. data/app/views/layouts/modals/_kids_results.html.erb +2 -2
  77. data/app/views/layouts/modals/_kindergarten_context.html.erb +3 -3
  78. data/app/views/layouts/modals/_kindergarten_results.html.erb +3 -3
  79. data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +2 -2
  80. data/app/views/layouts/modals/_level_up.html.erb +1 -1
  81. data/app/views/lessons/show.html.erb +1 -1
  82. data/app/views/users/_edit_user_form.html.erb +1 -1
  83. data/app/views/users/_term.html.erb +1 -1
  84. data/app/views/users/_user_form.html.erb +1 -1
  85. data/lib/mumuki/laboratory/controllers/results_rendering.rb +2 -1
  86. data/lib/mumuki/laboratory/engine.rb +1 -1
  87. data/lib/mumuki/laboratory/locales/en.yml +5 -8
  88. data/lib/mumuki/laboratory/locales/es-CL.yml +5 -3
  89. data/lib/mumuki/laboratory/locales/es.yml +8 -10
  90. data/lib/mumuki/laboratory/locales/pt.yml +5 -8
  91. data/lib/mumuki/laboratory/version.rb +1 -1
  92. data/spec/controllers/discussions_controller_spec.rb +19 -0
  93. data/spec/controllers/exercise_solutions_controller_spec.rb +3 -2
  94. data/spec/dummy/db/schema.rb +50 -1
  95. data/spec/dummy/public/character/animations.json +1 -0
  96. data/{public → spec/dummy/public}/character/kibi/context.svg +0 -0
  97. data/{public → spec/dummy/public}/character/kibi/failure.svg +0 -0
  98. data/{public → spec/dummy/public}/character/kibi/jump.svg +0 -0
  99. data/spec/dummy/public/character/kibi/passed_with_warnings.svg +4 -0
  100. data/{public → spec/dummy/public}/character/kibi/success2_l.svg +0 -0
  101. data/{public → spec/dummy/public}/character/kibi/success_l.svg +0 -0
  102. data/{public → spec/dummy/public}/character/magnifying_glass/apparition.svg +0 -0
  103. data/{public → spec/dummy/public}/character/magnifying_glass/loop.svg +0 -0
  104. data/spec/features/chapters_flow_spec.rb +112 -0
  105. data/spec/features/login_flow_spec.rb +1 -1
  106. data/spec/features/terms_flow_spec.rb +2 -0
  107. data/spec/features/topic_flow_spec.rb +0 -1
  108. data/spec/helpers/icons_helper_spec.rb +3 -3
  109. data/spec/helpers/test_results_rendering_spec.rb +8 -8
  110. data/spec/helpers/with_navigation_spec.rb +14 -14
  111. data/spec/javascripts/gamification-spec.js +2 -2
  112. data/spec/javascripts/i18n-spec.js +79 -0
  113. data/spec/javascripts/kids-button-spec.js +36 -0
  114. metadata +136 -115
  115. data/spec/dummy/config/database.travis.yml +0 -4
  116. data/spec/features/chapter_spec.rb +0 -70
@@ -5,6 +5,7 @@
5
5
  "context",
6
6
  "failure",
7
7
  "jump",
8
+ "passed_with_warnings",
8
9
  "success2_l",
9
10
  "success_l"
10
11
  ],
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?><svg xmlns:xlink="http://www.w3.org/1999/xlink" id="amarillo_maso" image-rendering="auto" baseProfile="basic" version="1.1" x="0px" y="0px" width="120" height="110" xmlns="http://www.w3.org/2000/svg"><defs><symbol id="lupa" overflow="visible"><g id="lupa_0.0"><g><path fill="none" stroke="#999" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M7.95,8.2L7.95,26.7"/><path fill="#6CF" stroke="#999" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M8.2,-6.85Q3.75,-6.85 0.55,-3.7 -2.6,-0.5 -2.6,3.95 -2.6,8.4 0.55,11.55 3.75,14.75 8.2,14.75 12.65,14.75 15.8,11.55 19,8.4 19,3.95 19,-0.5 15.8,-3.7 12.65,-6.85 8.2,-6.85"/><path fill="none" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M8.25,-2.55Q8.95,-2.45 9.7,-2.3 12.4,-1.75 13.9,0.6 15.05,2.55 14.95,4.65"/></g></g>
2
+ </symbol><symbol id="Duplicate_Items_Folder_ojos1" overflow="visible"><g id="Duplicate Items Folder/ojos1_0.0"><g><path fill="#FFF" d="M9.7,10.15Q11.55,8.75 11.7,6.35 11.85,3.95 10.15,2.05 8.7,0.4 6.25,0.25 3.85,0.1 1.95,1.55 0.15,3.2 0,5.6 -0.15,8 1.5,9.65 3.1,11.6 5.5,11.75 7.95,11.9 9.7,10.15"/><path fill="#0E2D38" d="M7.2,5.05L8.7,3.3Q7.75,2.35 6.2,2.25 4.6,2.15 3.35,3.1 2.15,4.2 2.05,5.8 1.95,7.4 3.05,8.5 4.1,9.8 5.7,9.9 7.35,10 8.5,8.85 9.75,7.9 9.85,6.3 9.9,5.8 9.8,5.4L7.2,5.05"/><path fill="#FFF" d="M16.5,9.4Q18.1,11.35 20.5,11.5 22.95,11.65 24.7,9.9 26.55,8.5 26.7,6.1 26.85,3.7 25.15,1.8 23.7,0.15 21.25,0 18.85,-0.15 16.95,1.3 15.15,2.95 15,5.35 14.85,7.75 16.5,9.4"/><path fill="#0E2D38" d="M23.85,2.95Q22.9,2 21.35,1.9 19.75,1.8 18.5,2.75 17.3,3.85 17.2,5.45 17.1,7.05 18.2,8.15 19.25,9.45 20.85,9.55 22.5,9.65 23.65,8.5 24.9,7.55 25,5.95 25.05,5.45 24.95,5.05L22.35,4.7 23.85,2.95"/></g></g>
3
+ </symbol><symbol id="ojos4" overflow="visible"><g id="ojos2_0.0"><g><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M10.1,7.4L4.1,10.9M10.1,7.4L3.85,3.1"/><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M17.3,6.75L23.85,9.1M17.3,6.75L22.65,1.35"/></g></g>
4
+ </symbol></defs><g id="Scene_1" overflow="visible"><g><path fill="#999" d="M81.2,98.85Q81.35,98.8 81.35,98.7 81.35,98.65 81.2,98.55 81.1,98.5 80.9,98.5 80.75,98.5 80.6,98.55 80.5,98.65 80.5,98.7 80.5,98.8 80.6,98.85 80.75,98.9 80.9,98.9 81.1,98.9 81.2,98.85"/><path fill="#999" d="M42.6,97.3Q42.5,97.35 42.5,97.45 42.5,97.55 42.6,97.6 42.75,97.65 42.95,97.65 43.1,97.65 43.25,97.6 43.35,97.55 43.35,97.45 43.35,97.35 43.25,97.3 43.1,97.25 42.95,97.25 42.75,97.25 42.6,97.3"/><path fill="#999" d="M41.5,97.95Q41.35,97.95 41.2,98 41.05,98.05 41.05,98.15 41.05,98.2 41.2,98.3 41.35,98.35 41.5,98.35 41.7,98.35 41.8,98.3 41.95,98.2 41.95,98.15 41.95,98.05 41.8,98 41.7,97.95 41.5,97.95"/><path fill="#999" d="M45.05,98.3Q44.95,98.4 44.95,98.45 44.95,98.55 45.05,98.6 45.2,98.65 45.4,98.65 45.55,98.65 45.65,98.6 45.8,98.55 45.8,98.45 45.8,98.4 45.65,98.3 45.55,98.25 45.4,98.25 45.2,98.25 45.05,98.3"/><path fill="#999" d="M49.95,95.6Q49.85,95.7 49.85,95.75 49.85,95.85 49.95,95.9 50.1,95.95 50.25,95.95 50.45,95.95 50.55,95.9 50.7,95.85 50.7,95.75 50.7,95.7 50.55,95.6 50.45,95.55 50.25,95.55 50.1,95.55 49.95,95.6"/><path fill="#999" d="M46.25,94.05Q46.25,94.15 46.35,94.2 46.5,94.25 46.65,94.25 46.85,94.25 46.95,94.2 47.1,94.15 47.1,94.05 47.1,94 46.95,93.9 46.85,93.85 46.65,93.85 46.5,93.85 46.35,93.9 46.25,94 46.25,94.05"/><path fill="#999" d="M47.95,96.5Q47.8,96.5 47.65,96.55 47.55,96.65 47.55,96.7 47.55,96.8 47.65,96.85 47.8,96.9 47.95,96.9 48.15,96.9 48.25,96.85 48.4,96.8 48.4,96.7 48.4,96.65 48.25,96.55 48.15,96.5 47.95,96.5"/><path fill="#999" d="M46.35,98.8Q46.2,98.9 46.2,98.95 46.2,99.05 46.35,99.1 46.5,99.15 46.65,99.15 46.85,99.15 46.95,99.1 47.1,99.05 47.1,98.95 47.1,98.9 46.95,98.8 46.85,98.75 46.65,98.75 46.5,98.75 46.35,98.8"/><path fill="#999" d="M49.75,96.4Q49.6,96.4 49.45,96.45 49.35,96.55 49.35,96.6 49.35,96.7 49.45,96.75 49.6,96.8 49.75,96.8 49.95,96.8 50.05,96.75 50.2,96.7 50.2,96.6 50.2,96.55 50.05,96.45 49.95,96.4 49.75,96.4"/><path fill="#999" d="M49.25,96.5Q49.25,96.45 49.15,96.35 49,96.3 48.85,96.3 48.65,96.3 48.55,96.35 48.4,96.45 48.4,96.5 48.4,96.6 48.55,96.65 48.65,96.7 48.85,96.7 49,96.7 49.15,96.65 49.25,96.6 49.25,96.5"/><path fill="#999" d="M49,98.25Q48.9,98.35 48.9,98.4 48.9,98.5 49,98.55 49.15,98.6 49.35,98.6 49.45,98.6 49.55,98.6 49.45,98.65 49.45,98.7 49.45,98.8 49.55,98.85 49.7,98.9 49.9,98.9 50.05,98.9 50.15,98.85 50.3,98.8 50.3,98.7 50.3,98.65 50.15,98.6 50.05,98.5 49.9,98.5 49.7,98.5 49.6,98.6L49.6,98.55Q49.75,98.5 49.75,98.4 49.75,98.35 49.6,98.25 49.5,98.2 49.35,98.2 49.15,98.2 49,98.25"/><path fill="#999" d="M51.75,95.6Q51.65,95.65 51.65,95.75 51.65,95.8 51.75,95.85 51.9,95.95 52.1,95.95 52.25,95.95 52.4,95.85 52.5,95.8 52.5,95.75 52.5,95.65 52.4,95.6 52.25,95.55 52.1,95.55 51.9,95.55 51.75,95.6"/><path fill="#999" d="M51.4,94.45Q51.25,94.5 51.25,94.55 51.25,94.65 51.4,94.7 51.55,94.75 51.7,94.75 51.9,94.75 52,94.7 52.15,94.65 52.15,94.55 52.15,94.5 52,94.45 51.9,94.35 51.7,94.35 51.55,94.35 51.4,94.45"/><path fill="#999" d="M52.9,94.7Q52.7,94.7 52.55,94.75 52.45,94.85 52.45,94.9 52.45,95 52.55,95.05 52.7,95.1 52.9,95.1 53.05,95.1 53.15,95.05 53.3,95 53.3,94.9 53.3,94.85 53.15,94.75 53.05,94.7 52.9,94.7"/><path fill="#999" d="M52.35,97Q52.35,96.95 52.2,96.85 52.1,96.8 51.95,96.8 51.75,96.8 51.6,96.85 51.5,96.95 51.5,97 51.5,97.1 51.6,97.15 51.75,97.2 51.95,97.2 52.1,97.2 52.2,97.15 52.35,97.1 52.35,97"/><path fill="#999" d="M51.5,98.45Q51.5,98.5 51.6,98.55 51.743,98.646 51.875,98.65 51.838,98.65 51.75,98.65 51.65,98.75 51.65,98.8 51.55,98.85 51.55,98.95 51.55,99.05 51.65,99.1 51.8,99.15 51.95,99.15 52.15,99.15 52.25,99.1 52.4,99.05 52.4,98.95 52.5,98.9 52.5,98.8 52.5,98.75 52.4,98.65 52.252,98.601 52.1,98.6 52.152,98.598 52.2,98.55 52.35,98.5 52.35,98.45 52.35,98.35 52.2,98.3 52.1,98.25 51.9,98.25 51.75,98.25 51.6,98.3 51.5,98.35 51.5,98.45"/><path fill="#999" d="M51.65,97.7Q51.65,97.8 51.75,97.85 51.9,97.9 52.05,97.9 52.25,97.9 52.35,97.85 52.5,97.8 52.5,97.7 52.5,97.6 52.35,97.55 52.25,97.5 52.05,97.5 51.9,97.5 51.75,97.55 51.65,97.6 51.65,97.7"/><path fill="#999" d="M52.9,97.8Q52.75,97.8 52.6,97.85 52.5,97.9 52.5,98 52.5,98.1 52.6,98.15 52.75,98.2 52.9,98.2 53.1,98.2 53.2,98.15 53.35,98.1 53.35,98 53.35,97.95 53.3,97.9 53.45,97.95 53.6,97.95L53.65,97.95Q53.6,98 53.6,98.05 53.6,98.15 53.75,98.2 53.85,98.25 54.05,98.25 54.2,98.25 54.35,98.2 54.5,98.15 54.5,98.05 54.5,98 54.35,97.9 54.2,97.85 54.05,97.85 54,97.85 53.95,97.85 54,97.8 54,97.75 54,97.7 53.85,97.6 53.75,97.55 53.6,97.55 53.4,97.55 53.25,97.6 53.15,97.7 53.15,97.75 53.15,97.8 53.2,97.85 53.05,97.8 52.9,97.8"/><path fill="#999" d="M52.45,98.4Q52.35,98.45 52.35,98.55 52.35,98.6 52.45,98.65 52.6,98.75 52.75,98.75 52.95,98.75 53.05,98.65 53.2,98.6 53.2,98.55 53.2,98.45 53.05,98.4 52.95,98.35 52.75,98.35 52.6,98.35 52.45,98.4"/><path fill="#999" d="M55.55,96.4Q55.35,96.4 55.2,96.45 55.1,96.5 55.1,96.6 55.1,96.7 55.2,96.75 55.35,96.8 55.55,96.8 55.7,96.8 55.8,96.75 55.95,96.7 55.95,96.6 55.95,96.5 55.8,96.45 55.7,96.4 55.55,96.4"/><path fill="#999" d="M54.45,98.6Q54.6,98.65 54.75,98.65 54.95,98.65 55.05,98.6 55.2,98.55 55.2,98.45 55.2,98.35 55.05,98.3 54.95,98.25 54.75,98.25 54.6,98.25 54.45,98.3 54.35,98.35 54.35,98.45 54.35,98.55 54.45,98.6"/><path fill="#999" d="M56.45,98.9Q56.3,98.9 56.15,98.95 56.05,99 56.05,99.1L56,99.05Q55.9,99 55.7,99 55.55,99 55.4,99.05 55.3,99.15 55.3,99.2 55.3,99.3 55.4,99.35 55.55,99.4 55.7,99.4 55.9,99.4 56,99.35 56.15,99.3 56.15,99.25 56.3,99.3 56.45,99.3 56.65,99.3 56.75,99.25 56.9,99.2 56.9,99.1 56.9,99 56.75,98.95 56.65,98.9 56.45,98.9"/><path fill="#999" d="M57.1,98.05Q57.25,98.1 57.4,98.1 57.6,98.1 57.7,98.05 57.85,98 57.85,97.9 57.85,97.8 57.7,97.75 57.6,97.7 57.4,97.7 57.25,97.7 57.1,97.75 57,97.8 57,97.9 57,98 57.1,98.05"/><path fill="#999" d="M59.1,98.15Q59.25,98.15 59.4,98.1 59.55,98.05 59.55,97.95 59.55,97.85 59.4,97.8 59.3,97.75 59.2,97.75 59.2,97.7 59.1,97.7 58.95,97.6 58.8,97.6 58.65,97.6 58.5,97.7 58.4,97.75 58.35,97.8 58.2,97.9 58.2,97.95 58.2,98.05 58.35,98.1 58.5,98.15 58.65,98.15 58.8,98.15 58.9,98.15 58.95,98.15 59.1,98.15"/><path fill="#999" d="M58.65,98.8Q58.65,98.9 58.75,98.95 58.9,99 59.1,99 59.25,99 59.35,98.95 59.5,98.9 59.5,98.8 59.5,98.75 59.35,98.65 59.25,98.6 59.1,98.6 58.9,98.6 58.75,98.65 58.65,98.75 58.65,98.8"/><path fill="#999" d="M60.6,97.65Q60.45,97.6 60.3,97.6 60.15,97.6 60,97.65 59.85,97.7 59.85,97.8 59.85,97.85 60,97.95 60.1,98 60.25,98L60.25,98.05Q60.25,98.15 60.35,98.2 60.5,98.25 60.65,98.25 60.85,98.25 60.95,98.2 61.1,98.15 61.1,98.05 61.1,98 60.95,97.95 60.85,97.9 60.7,97.85 60.75,97.85 60.75,97.8 60.75,97.7 60.6,97.65"/><path fill="#999" d="M60.05,98.4Q59.85,98.4 59.7,98.45 59.6,98.5 59.6,98.6 59.6,98.65 59.7,98.7 59.85,98.8 60.05,98.8 60.2,98.8 60.3,98.7 60.45,98.65 60.45,98.6 60.45,98.5 60.3,98.45 60.2,98.4 60.05,98.4"/><path fill="#999" d="M61.7,95.15Q61.6,95.1 61.4,95.1 61.25,95.1 61.1,95.15 61,95.2 61,95.3 61,95.4 61.1,95.45 61.25,95.5 61.4,95.5 61.6,95.5 61.7,95.45 61.85,95.4 61.85,95.3 61.85,95.2 61.7,95.15"/><path fill="#999" d="M61.05,97.2Q61.05,97.25 61.15,97.3 61.3,97.4 61.45,97.4 61.65,97.4 61.75,97.3 61.9,97.25 61.9,97.2 61.9,97.1 61.75,97.05 61.65,97 61.45,97 61.3,97 61.15,97.05 61.05,97.1 61.05,97.2"/><path fill="#999" d="M62,97.9Q61.85,97.95 61.85,98 61.85,98.1 62,98.15 62.15,98.2 62.3,98.2 62.45,98.2 62.6,98.15 62.75,98.1 62.75,98 62.75,97.95 62.6,97.9 62.45,97.8 62.3,97.8 62.15,97.8 62,97.9"/><path fill="#999" d="M65.4,96.85Q65.4,96.95 65.5,97 65.65,97.05 65.85,97.05 66,97.05 66.15,97 66.25,96.95 66.25,96.85 66.25,96.8 66.15,96.7 66,96.65 65.85,96.65 65.65,96.65 65.5,96.7 65.4,96.8 65.4,96.85"/><path fill="#999" d="M64.6,96.5Q64.8,96.5 64.9,96.4 65.05,96.35 65.05,96.3 65.05,96.2 64.9,96.15 64.8,96.1 64.6,96.1 64.45,96.1 64.3,96.15 64.2,96.2 64.2,96.3 64.2,96.35 64.3,96.4 64.45,96.5 64.6,96.5"/><path fill="#999" d="M65.5,97.95Q65.4,97.9 65.25,97.9 65.05,97.9 64.9,97.95 64.8,98 64.8,98.1 64.8,98.2 64.9,98.25 65,98.3 65.15,98.3 65,98.35 65,98.45 65,98.5 65.15,98.55 65.3,98.65 65.45,98.65 65.65,98.65 65.75,98.55 65.9,98.5 65.9,98.45L65.9,98.4Q66.05,98.45 66.25,98.45 66.4,98.45 66.5,98.4 66.65,98.35 66.65,98.25 66.65,98.2 66.5,98.1 66.4,98.05 66.25,98.05 66.05,98.05 65.9,98.1 65.8,98.2 65.8,98.25 65.8,98.298 65.85,98.35 65.798,98.3 65.75,98.3 65.65,98.25 65.55,98.25 65.65,98.2 65.65,98.1 65.65,98 65.5,97.95"/><path fill="#999" d="M69.1,95.8Q69.1,95.7 69,95.65 68.85,95.6 68.7,95.6 68.5,95.6 68.4,95.65 68.25,95.7 68.25,95.8 68.2,95.85 68.2,95.95 68.2,96 68.3,96.05 68.4,96.1 68.5,96.15 68.45,96.15 68.45,96.2 68.45,96.3 68.55,96.35 68.7,96.4 68.9,96.4 69.05,96.4 69.2,96.35 69.3,96.3 69.3,96.2 69.3,96.15 69.2,96.05 69.1,96.05 69,96 69.05,96 69.05,95.95L69.05,95.9Q69.1,95.85 69.1,95.8"/><path fill="#999" d="M67.85,97Q67.95,97.1 68.15,97.1 68.3,97.1 68.45,97 68.55,96.95 68.55,96.9L68.55,96.85Q68.75,96.85 68.85,96.8 69,96.75 69,96.65 69,96.6 68.85,96.5 68.75,96.45 68.55,96.45 68.4,96.45 68.25,96.5 68.15,96.6 68.15,96.65L68.15,96.7Q67.95,96.7 67.85,96.75 67.7,96.8 67.7,96.9 67.7,96.95 67.85,97"/><path fill="#999" d="M68.2,97.2Q68.05,97.25 68.05,97.35 68.05,97.4 68.2,97.5 68.35,97.55 68.5,97.55 68.7,97.55 68.8,97.5 68.95,97.4 68.95,97.35 68.95,97.25 68.8,97.2 68.7,97.15 68.5,97.15 68.35,97.15 68.2,97.2"/><path fill="#999" d="M66.3,98.95Q66.15,98.85 66,98.85 65.8,98.85 65.7,98.95 65.55,99 65.55,99.05 65.55,99.15 65.7,99.2 65.8,99.3 66,99.3 66.15,99.3 66.3,99.2 66.4,99.15 66.4,99.05 66.4,99 66.3,98.95"/><path fill="#999" d="M70.1,96.45Q70,96.5 70,96.6 70,96.65 70.1,96.7 70.25,96.8 70.4,96.8 70.6,96.8 70.7,96.7 70.85,96.65 70.85,96.6 70.85,96.5 70.7,96.45 70.6,96.4 70.4,96.4 70.25,96.4 70.1,96.45"/><path fill="#999" d="M74,95.6Q74,95.552 73.95,95.55 74.002,95.55 74.05,95.55 74.2,95.55 74.35,95.5 74.45,95.45 74.45,95.35 74.45,95.25 74.35,95.2 74.2,95.15 74.05,95.15 73.85,95.15 73.7,95.2 73.6,95.25 73.6,95.35 73.6,95.45 73.7,95.5 73.55,95.5 73.4,95.6 73.3,95.65 73.3,95.7 73.3,95.8 73.4,95.85 73.55,95.9 73.7,95.9 73.9,95.9 74,95.85 74.15,95.8 74.15,95.7 74.15,95.65 74,95.6"/><path fill="#999" d="M74.8,95.4Q74.8,95.45 74.95,95.5 75.05,95.6 75.25,95.6 75.4,95.6 75.55,95.5 75.65,95.45 75.65,95.4 75.65,95.3 75.55,95.25 75.4,95.15 75.25,95.15 75.05,95.15 74.95,95.25 74.8,95.3 74.8,95.4"/><path fill="#999" d="M71.65,95.55Q71.8,95.55 71.95,95.5 72.05,95.45 72.05,95.35 72.05,95.3 71.95,95.2 71.8,95.15 71.65,95.15 71.45,95.15 71.35,95.2 71.2,95.3 71.2,95.35 71.2,95.45 71.35,95.5 71.45,95.55 71.65,95.55"/><path fill="#999" d="M71.95,96.9Q71.85,96.95 71.85,97.05 71.85,97.15 71.95,97.2 72.1,97.25 72.3,97.25 72.45,97.25 72.55,97.2 72.7,97.15 72.7,97.05 72.7,96.95 72.55,96.9 72.45,96.85 72.3,96.85 72.1,96.85 71.95,96.9"/><path fill="#999" d="M74.1,96.6Q74.25,96.5 74.25,96.45 74.25,96.35 74.1,96.3 74,96.25 73.8,96.25 73.65,96.25 73.5,96.3 73.4,96.35 73.4,96.45 73.4,96.5 73.5,96.6 73.65,96.65 73.8,96.65 74,96.65 74.1,96.6"/><path fill="#999" d="M74.55,97.55Q74.45,97.6 74.45,97.7 74.45,97.75 74.55,97.85 74.7,97.9 74.9,97.9 75.05,97.9 75.15,97.85 75.3,97.75 75.3,97.7 75.3,97.6 75.15,97.55 75.05,97.5 74.9,97.5 74.7,97.5 74.55,97.55"/><path fill="#999" d="M77.25,97.3Q77.4,97.35 77.6,97.35 77.75,97.35 77.9,97.3 78,97.2 78,97.15 78,97.05 77.9,97 77.75,96.95 77.6,96.95L77.55,96.95Q77.5,96.9 77.4,96.85 77.3,96.8 77.1,96.8 76.95,96.8 76.8,96.85 76.7,96.9 76.7,97 76.7,97.1 76.8,97.15 76.95,97.2 77.1,97.2L77.15,97.2Q77.2,97.25 77.25,97.3"/><path fill="#999" d="M78.15,98Q78.3,97.95 78.3,97.85 78.3,97.75 78.15,97.7 78.05,97.65 77.85,97.65 77.7,97.65 77.55,97.7 77.45,97.75 77.45,97.85 77.45,97.95 77.55,98 77.7,98.05 77.85,98.05 78.05,98.05 78.15,98"/><path fill="#999" d="M80.2,97.3Q80.1,97.25 79.95,97.25 79.75,97.25 79.6,97.3 79.5,97.35 79.5,97.45 79.5,97.55 79.6,97.6 79.75,97.65 79.95,97.65 80.1,97.65 80.2,97.6 80.35,97.55 80.35,97.45 80.35,97.35 80.2,97.3"/><path fill="#999" d="M79.6,98.3Q79.45,98.3 79.3,98.35 79.15,98.45 79.15,98.5 79.15,98.6 79.3,98.65 79.45,98.7 79.6,98.7 79.75,98.7 79.9,98.65 80.05,98.6 80.05,98.5 80.2,98.6 80.35,98.6 80.55,98.6 80.65,98.5 80.8,98.45 80.8,98.4 80.8,98.3 80.65,98.25 80.55,98.2 80.35,98.2 80.2,98.2 80.05,98.25 79.95,98.3 79.95,98.4 79.9,98.4 79.9,98.35 79.75,98.3 79.6,98.3"/><path fill="#999" d="M79.45,97.95Q79.3,98.05 79.3,98.1 79.3,98.2 79.45,98.25 79.55,98.3 79.75,98.3 79.9,98.3 80.05,98.25 80.15,98.2 80.15,98.1 80.15,98.05 80.05,97.95 79.9,97.9 79.75,97.9 79.55,97.9 79.45,97.95"/><path fill="#999" d="M79.95,100Q79.95,100.1 80.1,100.15 79.95,100.15 79.85,100.2 79.7,100.25 79.7,100.35 79.7,100.45 79.85,100.5 80,100.55 80.15,100.55 80.3,100.55 80.45,100.5 80.6,100.45 80.6,100.35 80.6,100.3 80.5,100.2 80.6,100.2 80.7,100.15 80.75,100.15 80.8,100.1 80.9,100.1 81,100.1 81.15,100.1 81.25,100.05 81.4,99.95 81.4,99.9 81.4,99.8 81.25,99.75 81.15,99.7 81,99.7 80.8,99.7 80.65,99.75 80.6,99.8 80.55,99.85 80.5,99.8 80.4,99.8 80.2,99.8 80.1,99.9 79.95,99.95 79.95,100"/><path fill="#999" d="M80.9,100.3Q80.8,100.35 80.8,100.45 80.8,100.55 80.9,100.6L80.95,100.6Q81,100.7 81.1,100.75 81.2,100.8 81.4,100.8 81.5,100.8 81.6,100.8L81.65,100.8 81.65,100.85Q81.65,100.9 81.75,100.95 81.9,101.05 82.1,101.05 82.25,101.05 82.35,100.95 82.5,100.9 82.5,100.85 82.5,100.75 82.4,100.7 82.4,100.6 82.25,100.55 82.15,100.5 81.95,100.5 81.85,100.5 81.75,100.5L81.7,100.45 81.65,100.45Q81.65,100.35 81.5,100.3 81.4,100.25 81.2,100.25 81.05,100.25 80.9,100.3"/><path fill="#999" d="M78.9,100.4Q78.8,100.35 78.6,100.35 78.45,100.35 78.3,100.4 78.2,100.45 78.2,100.55 78.2,100.6 78.3,100.7 78.45,100.75 78.6,100.75 78.8,100.75 78.9,100.7 79.05,100.6 79.05,100.55 79.05,100.45 78.9,100.4"/><path fill="#999" d="M79.1,101.2Q79.1,101.15 78.95,101.05 78.85,101 78.65,101 78.5,101 78.35,101.05 78.25,101.15 78.25,101.2 78.25,101.3 78.35,101.35 78.5,101.4 78.65,101.4 78.85,101.4 78.95,101.35 79.1,101.3 79.1,101.2"/><path fill="#999" d="M76.75,99.65Q76.9,99.6 76.9,99.5 76.9,99.45 76.75,99.4 76.65,99.3 76.5,99.3 76.3,99.3 76.15,99.4 76.05,99.45 76.05,99.5 76.05,99.6 76.15,99.65 76.3,99.7 76.5,99.7 76.65,99.7 76.75,99.65"/><path fill="#999" d="M76.2,100Q76.35,99.95 76.35,99.85 76.35,99.75 76.2,99.7 76.1,99.65 75.9,99.65 75.75,99.65 75.6,99.7 75.5,99.75 75.5,99.85 75.5,99.95 75.6,100 75.75,100.05 75.9,100.05 76.1,100.05 76.2,100"/><path fill="#999" d="M76.7,101.15Q76.7,101.25 76.8,101.3 76.95,101.35 77.1,101.35 77.3,101.35 77.4,101.3 77.55,101.25 77.55,101.15 77.55,101.1 77.4,101 77.3,100.95 77.1,100.95 76.95,100.95 76.8,101 76.7,101.1 76.7,101.15"/><path fill="#999" d="M78.35,102.75Q78.35,102.7 78.2,102.6 78.1,102.55 77.9,102.55 77.75,102.55 77.6,102.6 77.5,102.7 77.5,102.75 77.5,102.85 77.6,102.9 77.75,102.95 77.9,102.95 78.1,102.95 78.2,102.9 78.35,102.85 78.35,102.75"/><path fill="#999" d="M80.8,102.4Q80.7,102.5 80.7,102.55 80.7,102.65 80.8,102.7 80.95,102.75 81.1,102.75 81.3,102.75 81.4,102.7 81.55,102.65 81.55,102.55 81.55,102.5 81.4,102.4 81.3,102.35 81.1,102.35 80.95,102.35 80.8,102.4"/><path fill="#999" d="M80.3,103Q80.15,103.05 80.15,103.15 80.15,103.2 80.3,103.25 80.45,103.35 80.6,103.35 80.75,103.35 80.9,103.25 81.05,103.2 81.05,103.15 81.05,103.05 80.9,103 80.75,102.95 80.6,102.95 80.45,102.95 80.3,103"/><path fill="#999" d="M80.15,103.6Q80.15,103.5 80,103.45 79.9,103.4 79.7,103.4 79.55,103.4 79.4,103.45 79.25,103.5 79.25,103.6 79.25,103.65 79.4,103.7 79.55,103.8 79.7,103.8 79.85,103.8 79.95,103.75 79.95,103.85 80.1,103.9 80.2,103.95 80.4,103.95 80.55,103.95 80.7,103.9 80.8,103.85 80.8,103.75 80.8,103.65 80.7,103.6 80.55,103.55 80.4,103.55 80.25,103.55 80.15,103.6"/><path fill="#999" d="M80.1,104.95Q80.25,104.95 80.35,104.9 80.5,104.85 80.5,104.75 80.5,104.7 80.35,104.65 80.25,104.55 80.1,104.55 79.9,104.55 79.75,104.65 79.65,104.7 79.65,104.75 79.65,104.85 79.75,104.9 79.9,104.95 80.1,104.95"/><path fill="#999" d="M75,99.5Q75.2,99.5 75.3,99.45 75.45,99.4 75.45,99.3 75.45,99.25 75.3,99.15 75.2,99.1 75,99.1 74.85,99.1 74.7,99.15 74.6,99.25 74.6,99.3 74.6,99.4 74.7,99.45 74.85,99.5 75,99.5"/><path fill="#999" d="M74.2,100Q74.05,100 73.9,100.05 73.8,100.15 73.8,100.2 73.8,100.3 73.9,100.35 74.05,100.4 74.2,100.4 74.4,100.4 74.5,100.35 74.65,100.3 74.65,100.2 74.65,100.15 74.5,100.05 74.4,100 74.2,100"/><path fill="#999" d="M73.85,101.45Q73.7,101.35 73.55,101.35 73.35,101.35 73.2,101.45 73.1,101.5 73.1,101.55 73.1,101.65 73.2,101.7 73.35,101.75 73.55,101.75 73.7,101.75 73.85,101.7 73.95,101.65 73.95,101.55 73.95,101.5 73.85,101.45"/><path fill="#999" d="M72.6,99.25Q72.5,99.2 72.35,99.2 72.15,99.2 72,99.25 71.9,99.3 71.9,99.4 71.9,99.45 72,99.5 72.15,99.6 72.35,99.6 72.5,99.6 72.6,99.5 72.75,99.45 72.75,99.4 72.75,99.3 72.6,99.25"/><path fill="#999" d="M71.75,99.7Q71.75,99.6 71.6,99.55 71.45,99.5 71.3,99.5 71.1,99.5 71,99.55 70.85,99.6 70.85,99.7 70.85,99.748 70.9,99.75 70.798,99.75 70.65,99.75 70.5,99.75 70.35,99.8 70.25,99.85 70.25,99.95 70.25,100 70.35,100.1 70.5,100.15 70.65,100.15 70.85,100.15 70.95,100.1 71.1,100 71.1,99.95L71.1,99.9Q71.15,99.9 71.3,99.9 71.45,99.9 71.6,99.85 71.75,99.8 71.75,99.7"/><path fill="#999" d="M71.3,100.5Q71.15,100.45 71,100.45 70.85,100.45 70.7,100.5 70.55,100.6 70.55,100.65 70.55,100.75 70.7,100.8 70.85,100.85 71,100.85 71.15,100.85 71.3,100.8 71.45,100.75 71.45,100.65 71.45,100.6 71.3,100.5"/><path fill="#999" d="M71.65,100.7Q71.55,100.8 71.55,100.85 71.55,100.95 71.65,101 71.8,101.05 71.95,101.05 72.15,101.05 72.25,101 72.4,100.95 72.4,100.85 72.4,100.8 72.25,100.7 72.15,100.65 71.95,100.65 71.8,100.65 71.65,100.7"/><path fill="#999" d="M71.05,101.25Q71.05,101.15 70.95,101.1 70.8,101.05 70.65,101.05 70.45,101.05 70.35,101.1 70.2,101.15 70.2,101.25 70.2,101.3 70.35,101.35 70.45,101.45 70.65,101.45 70.8,101.45 70.95,101.35 71.05,101.3 71.05,101.25"/><path fill="#999" d="M71.65,101.9Q71.8,102 71.95,102 72.15,102 72.25,101.9 72.4,101.85 72.4,101.8 72.4,101.7 72.25,101.65 72.15,101.6 71.95,101.6 71.8,101.6 71.65,101.65 71.55,101.7 71.55,101.8 71.55,101.85 71.65,101.9"/><path fill="#999" d="M71.15,102.55Q71.3,102.5 71.3,102.4 71.3,102.3 71.15,102.25 71,102.2 70.85,102.2 70.65,102.2 70.55,102.25 70.4,102.3 70.4,102.4 70.4,102.5 70.55,102.55 70.65,102.6 70.85,102.6 71,102.6 71.15,102.55"/><path fill="#999" d="M71.6,104.8Q71.6,104.85 71.7,104.9 71.85,105 72,105 72.2,105 72.3,104.9 72.45,104.85 72.45,104.8 72.45,104.7 72.3,104.65 72.2,104.6 72,104.6 71.85,104.6 71.7,104.65 71.6,104.7 71.6,104.8"/><path fill="#999" d="M72.65,105.1Q72.55,105.05 72.4,105.05 72.2,105.05 72.05,105.1 71.95,105.2 71.95,105.25 71.95,105.35 72.05,105.4 72.2,105.45 72.4,105.45 72.55,105.45 72.65,105.4 72.8,105.35 72.8,105.25 72.8,105.2 72.65,105.1"/><path fill="#999" d="M75.15,102.5Q75,102.5 74.85,102.55 74.75,102.65 74.75,102.7 74.75,102.8 74.85,102.85 75,102.9 75.15,102.9 75.35,102.9 75.45,102.85 75.6,102.8 75.6,102.7 75.6,102.65 75.45,102.55 75.35,102.5 75.15,102.5"/><path fill="#999" d="M74.35,105.15Q74.2,105.1 74.05,105.1 73.9,105.1 73.75,105.15 73.6,105.25 73.6,105.3 73.6,105.4 73.75,105.45 73.9,105.5 74.05,105.5 74.2,105.5 74.35,105.45 74.5,105.4 74.5,105.3 74.5,105.25 74.35,105.15"/><path fill="#999" d="M73.85,105.55Q73.7,105.5 73.55,105.5 73.35,105.5 73.2,105.55 73.1,105.65 73.1,105.7 73.1,105.8 73.2,105.85 73.35,105.9 73.55,105.9 73.7,105.9 73.85,105.85 73.95,105.8 73.95,105.7 73.95,105.65 73.85,105.55"/><path fill="#999" d="M76.3,106.55Q76.45,106.55 76.6,106.5 76.7,106.45 76.7,106.35 76.7,106.25 76.6,106.2 76.45,106.15 76.3,106.15 76.1,106.15 76,106.2 75.85,106.25 75.85,106.35 75.85,106.45 76,106.5 76.1,106.55 76.3,106.55"/><path fill="#999" d="M69.6,99.75Q69.5,99.7 69.35,99.7 69.15,99.7 69,99.75 68.9,99.85 68.9,99.9 68.9,100 69,100.05 69.15,100.1 69.35,100.1 69.5,100.1 69.6,100.05 69.75,100 69.75,99.9 69.75,99.85 69.6,99.75"/><path fill="#999" d="M70.3,101.95Q70.2,101.9 70,101.9 69.85,101.9 69.7,101.95 69.6,102 69.6,102.1 69.6,102.15 69.7,102.25 69.85,102.3 70,102.3 70.2,102.3 70.3,102.25 70.45,102.15 70.45,102.1 70.45,102 70.3,101.95"/><path fill="#999" d="M68.15,100.5Q68.15,100.4 68,100.35 67.9,100.3 67.75,100.3 67.55,100.3 67.4,100.35 67.3,100.4 67.3,100.5 67.3,100.55 67.4,100.6 67.55,100.7 67.75,100.7 67.9,100.7 68,100.6 68.15,100.55 68.15,100.5"/><path fill="#999" d="M66,99.8Q65.95,99.85 65.9,99.9 65.85,99.9 65.8,99.9 65.65,99.9 65.5,99.95 65.35,100 65.35,100.1 65.35,100.15 65.5,100.25 65.65,100.3 65.8,100.3 65.95,100.3 66.1,100.25 66.2,100.2 66.2,100.15 66.25,100.15 66.35,100.15 66.5,100.15 66.65,100.1 66.75,100.05 66.75,99.95 66.75,99.85 66.65,99.8 66.5,99.75 66.35,99.75 66.15,99.75 66,99.8"/><path fill="#999" d="M66.75,100.95Q66.75,100.85 66.6,100.8 66.45,100.75 66.3,100.75 66.15,100.75 66,100.8 65.85,100.85 65.85,100.95 65.85,100.998 65.9,101 65.847,101 65.75,101 65.55,101 65.45,101.05 65.3,101.1 65.3,101.2 65.3,101.3 65.45,101.35 65.55,101.4 65.75,101.4 65.9,101.4 66.05,101.35 66.2,101.3 66.2,101.2 66.2,101.151 66.15,101.1 66.202,101.15 66.3,101.15 66.45,101.15 66.6,101.05 66.75,101 66.75,100.95"/><path fill="#999" d="M67.35,102.55Q67.45,102.5 67.45,102.4 67.45,102.35 67.35,102.25 67.2,102.2 67.05,102.2 66.85,102.2 66.75,102.25 66.6,102.35 66.6,102.4 66.6,102.5 66.75,102.55 66.85,102.6 67.05,102.6 67.2,102.6 67.35,102.55"/><path fill="#999" d="M67.9,102.9Q67.8,102.95 67.8,103.05 67.8,103.1 67.9,103.2 68.05,103.25 68.25,103.25L68.3,103.25Q68.35,103.25 68.45,103.25 68.6,103.25 68.75,103.2 68.85,103.15 68.85,103.05 68.85,102.95 68.75,102.9 68.6,102.85 68.45,102.85L68.4,102.85Q68.3,102.85 68.25,102.85 68.05,102.85 67.9,102.9"/><path fill="#999" d="M65.95,103.45Q66.1,103.4 66.1,103.3 66.1,103.2 65.95,103.15 65.85,103.1 65.65,103.1 65.5,103.1 65.35,103.15 65.25,103.2 65.25,103.3 65.25,103.4 65.35,103.45 65.5,103.5 65.65,103.5 65.85,103.5 65.95,103.45"/><path fill="#999" d="M66.5,105.15Q66.5,105.05 66.35,105 66.3,104.95 66.15,104.95 66.2,104.9 66.2,104.85 66.2,104.8 66.05,104.7 65.95,104.65 65.75,104.65 65.6,104.65 65.45,104.7 65.35,104.8 65.35,104.85 65.35,104.95 65.45,105 65.55,105.05 65.7,105.05 65.65,105.1 65.65,105.15 65.65,105.2 65.75,105.3 65.9,105.35 66.05,105.35 66.25,105.35 66.35,105.3 66.5,105.2 66.5,105.15"/><path fill="#999" d="M68.05,104.15Q68.2,104.1 68.2,104 68.2,103.9 68.05,103.85 67.95,103.8 67.8,103.8 67.6,103.8 67.45,103.85 67.35,103.9 67.35,104 67.35,104.1 67.45,104.15 67.6,104.2 67.8,104.2 67.95,104.2 68.05,104.15"/><path fill="#999" d="M70.1,102.65Q70.1,102.55 69.95,102.5 69.85,102.45 69.65,102.45 69.5,102.45 69.35,102.5 69.25,102.55 69.25,102.65 69.25,102.7 69.35,102.75 69.5,102.85 69.65,102.85 69.85,102.85 69.95,102.75 70.1,102.7 70.1,102.65"/><path fill="#999" d="M69.2,104.5Q69.05,104.45 68.9,104.45 68.7,104.45 68.55,104.5 68.45,104.55 68.45,104.65 68.45,104.7 68.55,104.75 68.7,104.85 68.9,104.85 69.05,104.85 69.2,104.75 69.3,104.7 69.3,104.65 69.3,104.55 69.2,104.5"/><path fill="#999" d="M70.7,103.95Q70.7,103.85 70.55,103.8 70.45,103.75 70.3,103.75 70.1,103.75 69.95,103.8 69.85,103.85 69.85,103.95 69.85,104.05 69.95,104.1 70.1,104.15 70.3,104.15 70.45,104.15 70.55,104.1 70.7,104.05 70.7,103.95"/><path fill="#999" d="M65.05,100.4Q64.95,100.35 64.75,100.35 64.6,100.35 64.45,100.4 64.35,100.5 64.35,100.55 64.35,100.65 64.45,100.7 64.6,100.75 64.75,100.75 64.95,100.75 65.05,100.7 65.2,100.65 65.2,100.55 65.2,100.5 65.05,100.4"/><path fill="#999" d="M63.95,99.45Q64.1,99.4 64.1,99.35 64.1,99.25 63.95,99.2 63.85,99.15 63.7,99.15 63.5,99.15 63.35,99.2 63.25,99.25 63.25,99.35 63.25,99.4 63.35,99.45 63.5,99.55 63.7,99.55 63.85,99.55 63.95,99.45"/><path fill="#999" d="M63.5,101.5Q63.7,101.5 63.8,101.45 63.95,101.4 63.95,101.3 63.95,101.25 63.8,101.15 63.7,101.1 63.5,101.1 63.35,101.1 63.2,101.15 63.1,101.25 63.1,101.3 63.1,101.4 63.2,101.45 63.35,101.5 63.5,101.5"/><path fill="#999" d="M62.5,99.8Q62.551,99.799 62.6,99.75 62.75,99.7 62.75,99.6 62.75,99.55 62.6,99.5 62.45,99.4 62.3,99.4 62.15,99.4 62,99.5 61.85,99.55 61.85,99.6 61.85,99.65 61.9,99.7 61.85,99.7 61.8,99.7 61.7,99.8 61.7,99.85 61.7,99.95 61.8,100 61.95,100.05 62.1,100.05 62.3,100.05 62.4,100 62.55,99.95 62.55,99.85 62.55,99.801 62.5,99.8"/><path fill="#999" d="M60.9,99.4Q60.9,99.3 60.8,99.25 60.65,99.2 60.5,99.2 60.3,99.2 60.2,99.25 60.05,99.3 60.05,99.4 60.05,99.5 60.2,99.55 60.298,99.599 60.5,99.6 60.395,99.602 60.25,99.65 60.15,99.7 60.15,99.8 60.15,99.9 60.25,99.95 60.3,99.95 60.4,100L60.4,100.05Q60.4,100.1 60.5,100.15 60.65,100.25 60.8,100.25 61,100.25 61.1,100.15 61.25,100.1 61.25,100.05 61.25,99.95 61.1,99.9 61.05,99.85 61,99.85L61,99.8Q61,99.7 60.85,99.65 60.752,99.601 60.6,99.6 60.703,99.598 60.8,99.55 60.9,99.5 60.9,99.4"/><path fill="#999" d="M60.95,101.65Q61.1,101.6 61.1,101.5 61.1,101.4 60.95,101.35 60.8,101.3 60.65,101.3 60.45,101.3 60.35,101.35 60.2,101.4 60.2,101.5 60.2,101.6 60.35,101.65 60.45,101.7 60.65,101.7 60.8,101.7 60.95,101.65"/><path fill="#999" d="M61.35,102Q61.35,101.95 61.25,101.9 61.1,101.8 60.95,101.8 60.75,101.8 60.65,101.9 60.5,101.95 60.5,102 60.5,102.1 60.65,102.15 60.75,102.2 60.95,102.2 61.1,102.2 61.25,102.15 61.35,102.1 61.35,102"/><path fill="#999" d="M61.05,100.8Q61.15,100.75 61.15,100.7 61.15,100.6 61.05,100.55 60.9,100.5 60.75,100.5 60.55,100.5 60.4,100.55 60.35,100.5 60.25,100.45 60.15,100.4 59.95,100.4 59.8,100.4 59.65,100.45 59.55,100.5 59.55,100.6 59.55,100.65 59.65,100.7 59.75,100.8 59.9,100.8 59.9,100.85 60,100.9 60.15,100.95 60.3,100.95 60.5,100.95 60.6,100.9 60.65,100.9 60.75,100.9 60.9,100.9 61.05,100.8"/><path fill="#999" d="M62.35,101.4Q62.25,101.45 62.25,101.55 62.25,101.6 62.35,101.65 62.5,101.75 62.65,101.75 62.85,101.75 62.95,101.65 63.1,101.6 63.1,101.55 63.1,101.45 62.95,101.4 62.85,101.35 62.65,101.35 62.5,101.35 62.35,101.4"/><path fill="#999" d="M62.9,102.65Q62.9,102.75 63,102.8 63.15,102.85 63.3,102.85 63.5,102.85 63.6,102.8 63.75,102.75 63.75,102.65 63.75,102.6 63.6,102.55 63.5,102.45 63.3,102.45 63.15,102.45 63,102.55 62.9,102.6 62.9,102.65"/><path fill="#999" d="M60.9,103.45Q61.05,103.5 61.2,103.5 61.4,103.5 61.5,103.45 61.65,103.4 61.65,103.3 61.65,103.25 61.5,103.2 61.4,103.1 61.2,103.1 61.05,103.1 60.9,103.2 60.8,103.25 60.8,103.3 60.8,103.4 60.9,103.45"/><path fill="#999" d="M61.3,104.9Q61.15,104.85 61,104.85 60.8,104.85 60.7,104.9 60.55,104.95 60.55,105.05 60.55,105.15 60.7,105.2 60.8,105.25 61,105.25 61.15,105.25 61.3,105.2 61.4,105.15 61.4,105.05 61.4,104.95 61.3,104.9"/><path fill="#999" d="M60.85,104.75Q60.95,104.7 60.95,104.6 60.95,104.5 60.85,104.45 60.7,104.4 60.55,104.4 60.35,104.4 60.25,104.45 60.1,104.5 60.1,104.6 60.1,104.7 60.25,104.75 60.35,104.8 60.55,104.8 60.7,104.8 60.85,104.75"/><path fill="#999" d="M65.05,103.6Q64.95,103.55 64.75,103.55 64.6,103.55 64.45,103.6 64.35,103.7 64.35,103.75 64.35,103.85 64.45,103.9 64.6,103.95 64.75,103.95 64.95,103.95 65.05,103.9 65.2,103.85 65.2,103.75 65.2,103.7 65.05,103.6"/><path fill="#999" d="M64.05,103.35Q63.9,103.3 63.75,103.3 63.6,103.3 63.45,103.35 63.3,103.45 63.3,103.5 63.3,103.6 63.45,103.65 63.6,103.7 63.75,103.7 63.9,103.7 64.05,103.65 64.2,103.6 64.2,103.5 64.2,103.45 64.05,103.35"/><path fill="#999" d="M64.65,106.35Q64.8,106.35 64.9,106.3 65.05,106.2 65.05,106.15 65.05,106.05 64.9,106 64.8,105.95 64.65,105.95 64.45,105.95 64.3,106 64.2,106.05 64.2,106.15 64.2,106.2 64.3,106.3 64.45,106.35 64.65,106.35"/><path fill="#999" d="M61.3,105.95Q61.3,105.9 61.2,105.8 61.05,105.75 60.9,105.75 60.7,105.75 60.6,105.8 60.45,105.9 60.45,105.95 60.45,106 60.5,106.05 60.45,106.1 60.45,106.15 60.45,106.25 60.6,106.3 60.7,106.35 60.9,106.35 61.05,106.35 61.2,106.3 61.3,106.25 61.3,106.15 61.3,106.1 61.25,106.05 61.3,106 61.3,105.95"/><path fill="#999" d="M60.95,107.15Q61.1,107.15 61.25,107.1 61.35,107.05 61.35,106.95 61.35,106.85 61.25,106.8 61.1,106.75 60.95,106.75 60.75,106.75 60.65,106.8 60.5,106.85 60.5,106.95 60.5,107.05 60.65,107.1 60.75,107.15 60.95,107.15"/><path fill="#999" d="M69.4,105.8Q69.25,105.75 69.1,105.75 68.9,105.75 68.8,105.8 68.65,105.85 68.65,105.95 68.65,106 68.75,106.05 68.7,106.1 68.6,106.1 68.5,106.2 68.5,106.25 68.5,106.35 68.6,106.4 68.75,106.45 68.95,106.45 69.1,106.45 69.25,106.4 69.35,106.35 69.35,106.25 69.35,106.2 69.3,106.15 69.35,106.1 69.4,106.1 69.5,106.05 69.5,105.95 69.5,105.85 69.4,105.8"/><path fill="#999" d="M68.35,106.6Q68.5,106.55 68.5,106.45 68.5,106.4 68.35,106.3 68.25,106.25 68.05,106.25 67.9,106.25 67.75,106.3 67.65,106.4 67.65,106.45 67.65,106.55 67.75,106.6 67.9,106.65 68.05,106.65 68.25,106.65 68.35,106.6"/><path fill="#999" d="M66.5,105.9Q66.7,105.9 66.8,105.85 66.95,105.8 66.95,105.7 66.95,105.65 66.8,105.55 66.7,105.5 66.5,105.5 66.35,105.5 66.2,105.55 66.1,105.65 66.1,105.7 66.1,105.8 66.2,105.85 66.35,105.9 66.5,105.9"/><path fill="#999" d="M66.6,107.3Q66.75,107.3 66.9,107.25 67,107.2 67,107.1 67,107.05 66.9,106.95 66.75,106.9 66.6,106.9 66.4,106.9 66.3,106.95 66.15,107.05 66.15,107.1 66.15,107.2 66.3,107.25 66.4,107.3 66.6,107.3"/><path fill="#999" d="M58.85,100.1Q59,100.05 59,100 59,99.9 58.85,99.85 58.75,99.8 58.55,99.8 58.4,99.8 58.25,99.85 58.15,99.9 58.15,100 58.15,100.05 58.25,100.1 58.4,100.2 58.55,100.2 58.75,100.2 58.85,100.1"/><path fill="#999" d="M58.65,100.4Q58.65,100.3 58.55,100.25 58.4,100.2 58.25,100.2 58.05,100.2 57.9,100.25 57.8,100.3 57.8,100.4 57.8,100.45 57.9,100.55 58.05,100.6 58.25,100.6 58.4,100.6 58.55,100.55 58.65,100.45 58.65,100.4"/><path fill="#999" d="M59.05,101Q59.05,101.05 59.15,101.15 59.3,101.2 59.45,101.2 59.65,101.2 59.75,101.15 59.9,101.05 59.9,101 59.9,100.9 59.75,100.85 59.65,100.8 59.45,100.8 59.3,100.8 59.15,100.85 59.05,100.9 59.05,101"/><path fill="#999" d="M58.65,100.9Q58.65,100.8 58.55,100.75 58.4,100.7 58.25,100.7 58.05,100.7 57.9,100.75 57.8,100.8 57.8,100.9 57.8,101 57.9,101.05 58.05,101.1 58.25,101.1 58.4,101.1 58.55,101.05 58.65,101 58.65,100.9"/><path fill="#999" d="M58.5,101.9Q58.35,101.95 58.35,102.05 58.35,102.1 58.5,102.15 58.548,102.198 58.6,102.2L58.55,102.2Q58.35,102.2 58.25,102.25 58.1,102.35 58.1,102.4 58.1,102.5 58.25,102.55 58.35,102.6 58.55,102.6 58.7,102.6 58.85,102.55 58.95,102.5 58.95,102.4L58.95,102.35 59,102.4Q59.15,102.45 59.3,102.45 59.45,102.45 59.6,102.4 59.75,102.3 59.75,102.25 59.75,102.15 59.6,102.1 59.45,102.05 59.3,102.05L59.25,102.05Q59.25,101.95 59.1,101.9 58.95,101.85 58.8,101.85 58.65,101.85 58.5,101.9"/><path fill="#999" d="M57.35,100.3Q57.2,100.3 57.05,100.35 56.9,100.45 56.9,100.5 56.9,100.6 57.05,100.65 57.05,100.75 57.2,100.8 57.3,100.85 57.5,100.85 57.65,100.85 57.8,100.8 57.9,100.75 57.9,100.65 57.9,100.6 57.8,100.55L57.8,100.5Q57.8,100.45 57.65,100.35 57.55,100.3 57.35,100.3"/><path fill="#999" d="M56.5,101.7Q56.65,101.8 56.8,101.8 57,101.8 57.1,101.7 57.25,101.65 57.25,101.6 57.25,101.5 57.1,101.45 57,101.4 56.8,101.4 56.65,101.4 56.5,101.45 56.35,101.5 56.35,101.6 56.35,101.65 56.5,101.7"/><path fill="#999" d="M56.9,101.9Q56.75,101.9 56.6,102 56.5,102.05 56.5,102.1 56.5,102.2 56.6,102.25 56.75,102.3 56.9,102.3 57.1,102.3 57.2,102.25 57.35,102.2 57.35,102.1 57.35,102.05 57.2,102 57.1,101.9 56.9,101.9"/><path fill="#999" d="M58.15,101.95Q58.05,101.9 57.85,101.9 57.7,101.9 57.55,101.95 57.4,102 57.4,102.1 57.4,102.15 57.55,102.2 57.7,102.3 57.85,102.3 58.05,102.3 58.15,102.2 58.3,102.15 58.3,102.1 58.3,102 58.15,101.95"/><path fill="#999" d="M57.55,102.7Q57.4,102.65 57.25,102.65 57.1,102.65 56.95,102.7 56.8,102.75 56.8,102.85 56.8,102.95 56.95,103 57,103 57.1,103.05 57,103.1 57,103.15 57,103.2 57.15,103.3 57.25,103.35 57.45,103.35 57.6,103.35 57.75,103.3 57.85,103.2 57.85,103.15 57.85,103.05 57.75,103 57.7,102.95 57.6,102.95 57.7,102.9 57.7,102.85 57.7,102.75 57.55,102.7"/><path fill="#999" d="M56.5,102.75Q56.5,102.7 56.35,102.6 56.25,102.55 56.1,102.55 55.955,102.55 55.85,102.6 55.95,102.548 55.95,102.5 55.95,102.4 55.85,102.35 55.8,102.3 55.7,102.2 55.6,102.15 55.4,102.15 55.25,102.15 55.1,102.2 55,102.3 55,102.35 55,102.45 55.1,102.5 55.1,102.55 55.2,102.6 55.35,102.7 55.5,102.7 55.6,102.7 55.7,102.65 55.65,102.7 55.65,102.75 55.65,102.85 55.75,102.9 55.9,102.95 56.1,102.95 56.25,102.95 56.35,102.9 56.5,102.85 56.5,102.75"/><path fill="#999" d="M56.85,105.05Q56.75,105.1 56.75,105.15 56.75,105.25 56.85,105.3 57,105.35 57.15,105.35 57.35,105.35 57.45,105.3 57.55,105.25 57.6,105.2 57.65,105.2 57.75,105.15 57.85,105.1 57.85,105 57.85,104.95 57.75,104.9 57.6,104.8 57.45,104.8 57.25,104.8 57.15,104.9 57.05,104.9 57.05,105 56.9,105 56.85,105.05"/><path fill="#999" d="M58.05,104.2Q57.9,104.2 57.75,104.25 57.65,104.3 57.65,104.4 57.65,104.45 57.75,104.5 57.9,104.6 58.05,104.6 58.25,104.6 58.35,104.5 58.5,104.45 58.5,104.4 58.5,104.3 58.35,104.25 58.25,104.2 58.05,104.2"/><path fill="#999" d="M60.45,102.8Q60.45,102.7 60.3,102.65 60.2,102.6 60.1,102.6 60.05,102.6 60.05,102.55 59.9,102.5 59.75,102.5 59.55,102.5 59.4,102.55 59.3,102.65 59.3,102.7 59.3,102.8 59.4,102.85 59.55,102.9 59.65,102.9L59.7,102.95Q59.85,103 60,103 60.2,103 60.3,102.95 60.45,102.9 60.45,102.8"/><path fill="#999" d="M58.5,103.2Q58.5,103.25 58.65,103.3 58.75,103.4 58.95,103.4 59.1,103.4 59.25,103.3 59.35,103.25 59.35,103.2 59.35,103.1 59.25,103.05 59.1,102.95 58.95,102.95 58.75,102.95 58.65,103.05 58.5,103.1 58.5,103.2"/><path fill="#999" d="M59.35,104.65Q59.25,104.7 59.25,104.8 59.2,104.85 59.2,104.9 59.2,104.95 59.3,105 59.45,105.1 59.65,105.1 59.8,105.1 59.9,105 60.05,104.95 60.05,104.9 60.1,104.85 60.1,104.8 60.1,104.7 59.95,104.65 59.85,104.6 59.65,104.6 59.5,104.6 59.35,104.65"/><path fill="#999" d="M55.5,99.6Q55.5,99.5 55.35,99.45 55.25,99.4 55.05,99.4 54.9,99.4 54.75,99.45 54.65,99.5 54.65,99.6 54.65,99.65 54.75,99.7 54.9,99.8 55.05,99.8 55.25,99.8 55.35,99.7 55.5,99.65 55.5,99.6"/><path fill="#999" d="M53.45,100Q53.45,100.1 53.6,100.15 53.7,100.2 53.9,100.2 54.05,100.2 54.2,100.15 54.3,100.1 54.3,100 54.3,99.95 54.2,99.85 54.05,99.8 53.9,99.8 53.7,99.8 53.6,99.85 53.45,99.95 53.45,100"/><path fill="#999" d="M54.15,100.5Q54.05,100.45 53.85,100.45 53.7,100.45 53.55,100.5 53.45,100.6 53.45,100.65 53.45,100.75 53.55,100.8 53.7,100.85 53.85,100.85 54.05,100.85 54.15,100.8 54.3,100.75 54.3,100.65 54.3,100.6 54.15,100.5"/><path fill="#999" d="M53.75,101Q53.65,100.95 53.5,100.95 53.3,100.95 53.15,101 53.05,101.1 53.05,101.15 53.05,101.25 53.15,101.3 53.3,101.35 53.5,101.35 53.65,101.35 53.75,101.3 53.9,101.25 53.9,101.15 53.9,101.1 53.75,101"/><path fill="#999" d="M54.85,101.8Q54.7,101.8 54.55,101.85 54.45,101.9 54.45,102 54.45,102.05 54.55,102.1 54.7,102.2 54.85,102.2 55.05,102.2 55.15,102.1 55.3,102.05 55.3,102 55.3,101.9 55.15,101.85 55.05,101.8 54.85,101.8"/><path fill="#999" d="M52.75,99.35Q52.75,99.3 52.6,99.2 52.5,99.15 52.3,99.15 52.15,99.15 52,99.2 51.9,99.3 51.9,99.35 51.9,99.45 52,99.5 52.15,99.55 52.3,99.55 52.5,99.55 52.6,99.5 52.75,99.45 52.75,99.35"/><path fill="#999" d="M52.4,100.35Q52.303,100.302 52.15,100.3 52.305,100.297 52.45,100.2 52.45,100.3 52.55,100.35 52.7,100.4 52.9,100.4 53.05,100.4 53.15,100.35 53.3,100.3 53.3,100.2 53.3,100.1 53.15,100.05 53.05,100 52.9,100 52.7,100 52.6,100.05 52.55,100 52.45,99.95 52.3,99.9 52.15,99.9 52,99.9 51.85,99.95 51.7,100 51.7,100.1 51.7,100.15 51.85,100.2 51.998,100.298 52.1,100.3 51.948,100.301 51.8,100.35 51.65,100.4 51.65,100.5 51.65,100.55 51.8,100.6 51.95,100.7 52.1,100.7 52.25,100.7 52.4,100.6 52.55,100.55 52.55,100.5 52.55,100.4 52.4,100.35"/><path fill="#999" d="M51.65,101.7Q51.55,101.8 51.55,101.85L51.55,101.9Q51.5,101.85 51.45,101.85 51.35,101.8 51.15,101.8 51,101.8 50.9,101.85 50.75,101.85 50.65,101.9 50.5,101.95 50.5,102.05 50.5,102.1 50.65,102.2 50.75,102.25 50.95,102.25 51.1,102.25 51.2,102.2 51.35,102.2 51.45,102.15 51.6,102.1 51.6,102L51.6,101.95Q51.601,102 51.65,102 51.8,102.05 51.95,102.05 52.05,102.05 52.1,102.05L52.05,102.1Q52.05,102.2 52.2,102.25 52.3,102.3 52.5,102.3 52.65,102.3 52.8,102.25 52.95,102.2 52.95,102.1 52.95,102.05 52.8,102 52.65,101.9 52.5,101.9 52.45,101.9 52.4,101.95 52.4,101.9 52.4,101.85 52.4,101.8 52.25,101.7 52.15,101.65 51.95,101.65 51.8,101.65 51.65,101.7"/><path fill="#999" d="M51.15,104.7Q51.05,104.75 51.05,104.85 51.05,104.9 51.15,104.95 51.3,105.05 51.45,105.05 51.65,105.05 51.75,104.95 51.9,104.9 51.9,104.85 51.9,104.75 51.75,104.7 51.65,104.65 51.45,104.65 51.3,104.65 51.15,104.7"/><path fill="#999" d="M52.45,104.5Q52.45,104.55 52.55,104.6 52.7,104.7 52.85,104.7 53.05,104.7 53.15,104.6 53.3,104.55 53.3,104.5 53.3,104.4 53.15,104.35 53.05,104.3 52.85,104.3 52.7,104.3 52.55,104.35 52.45,104.4 52.45,104.5"/><path fill="#999" d="M54.8,104.95Q54.7,105 54.7,105.1 54.7,105.15 54.8,105.2 54.95,105.3 55.1,105.3 55.3,105.3 55.4,105.2 55.55,105.15 55.55,105.1 55.55,105 55.4,104.95 55.3,104.9 55.1,104.9 54.95,104.9 54.8,104.95"/><path fill="#999" d="M55.45,105.65Q55.45,105.55 55.3,105.5 55.2,105.45 55.05,105.45 54.85,105.45 54.7,105.5 54.6,105.55 54.6,105.65 54.6,105.7 54.7,105.75 54.85,105.85 55.05,105.85 55.2,105.85 55.3,105.75 55.45,105.7 55.45,105.65"/><path fill="#999" d="M54.95,106.5Q54.8,106.45 54.65,106.45 54.45,106.45 54.3,106.5 54.2,106.55 54.2,106.65 54.2,106.7 54.3,106.75 54.45,106.85 54.65,106.85 54.8,106.85 54.95,106.75 55.05,106.7 55.05,106.65 55.05,106.55 54.95,106.5"/><path fill="#999" d="M51.85,106.1Q52.05,106.1 52.15,106.05 52.3,106 52.3,105.9 52.3,105.8 52.15,105.75 52.05,105.7 51.85,105.7 51.7,105.7 51.55,105.75 51.45,105.8 51.45,105.9 51.45,106 51.55,106.05 51.7,106.1 51.85,106.1"/><path fill="#999" d="M49.1,101.9Q48.95,101.9 48.8,101.95 48.65,102 48.65,102.1 48.65,102.15 48.8,102.2L48.8,102.3Q48.8,102.35 48.9,102.4 49.05,102.5 49.2,102.5 49.4,102.5 49.5,102.4 49.65,102.35 49.65,102.3 49.65,102.25 49.65,102.2 49.7,102.2 49.8,102.15 49.95,102.1 49.95,102.05 49.95,101.95 49.8,101.9 49.7,101.85 49.5,101.85 49.35,101.85 49.2,101.9 49.15,101.9 49.1,101.9"/><path fill="#999" d="M47.25,99.15Q47.25,99.2 47.4,99.25 47.5,99.35 47.7,99.35 47.85,99.35 48,99.25 48.1,99.2 48.1,99.15 48.1,99.05 48,99 47.85,98.95 47.7,98.95 47.5,98.95 47.4,99 47.25,99.05 47.25,99.15"/><path fill="#999" d="M47.6,101.25Q47.8,101.25 47.9,101.2 48.05,101.15 48.05,101.05 48.05,101 47.9,100.9 47.8,100.85 47.6,100.85 47.45,100.85 47.3,100.9 47.15,101 47.15,101.05 47.15,101.15 47.3,101.2 47.45,101.25 47.6,101.25"/><path fill="#999" d="M47.3,101.4Q47.2,101.5 47.2,101.55 47.2,101.65 47.3,101.7 47.45,101.75 47.6,101.75 47.8,101.75 47.9,101.7 48.05,101.65 48.05,101.55 48.05,101.5 47.9,101.4 47.8,101.35 47.6,101.35 47.45,101.35 47.3,101.4"/><path fill="#999" d="M47.95,102.65Q48.05,102.55 48.05,102.5 48.05,102.4 47.95,102.35 47.8,102.3 47.65,102.3 47.45,102.3 47.35,102.35 47.2,102.4 47.2,102.5 47.2,102.55 47.35,102.65 47.45,102.7 47.65,102.7 47.8,102.7 47.95,102.65"/><path fill="#999" d="M48,103.45Q47.9,103.5 47.9,103.6 47.9,103.65 48,103.7 48.1,103.75 48.2,103.8L48.2,103.85Q48.2,103.9 48.3,103.95 48.45,104.05 48.6,104.05 48.7,104.05 48.75,104 48.85,104.05 48.9,104.05 49.05,104.05 49.2,103.95 49.35,103.9 49.35,103.85 49.35,103.75 49.2,103.7 49.05,103.6 48.9,103.6 48.85,103.6 48.75,103.65L48.75,103.6Q48.75,103.5 48.6,103.45 48.5,103.4 48.3,103.4 48.15,103.4 48,103.45"/><path fill="#999" d="M45.8,102.3Q45.9,102.25 45.9,102.15 45.9,102.1 45.8,102 45.65,101.95 45.5,101.95 45.3,101.95 45.15,102 45.05,102.1 45.05,102.15 45.05,102.25 45.15,102.3 45.3,102.35 45.5,102.35 45.65,102.35 45.8,102.3"/><path fill="#999" d="M47.6,104.3Q47.65,104.25 47.7,104.25L47.75,104.25Q47.95,104.25 48.05,104.2 48.2,104.1 48.2,104.05 48.2,103.95 48.05,103.9 47.95,103.85 47.75,103.85 47.6,103.85 47.45,103.9 47.4,103.95 47.35,103.95L47.3,103.95Q47.15,103.95 47,104.05 46.9,104.1 46.9,104.15 46.9,104.25 47,104.3 47.15,104.35 47.3,104.35 47.5,104.35 47.6,104.3"/><path fill="#999" d="M47.55,104.8Q47.55,104.9 47.7,104.95L47.7,105Q47.55,105.05 47.55,105.15 47.55,105.2 47.7,105.25 47.85,105.35 48,105.35 48.15,105.35 48.3,105.25 48.45,105.2 48.45,105.15 48.45,105.05 48.3,105L48.25,104.95 48.3,104.95Q48.45,104.9 48.45,104.8 48.45,104.75 48.3,104.65 48.15,104.6 48,104.6 47.85,104.6 47.7,104.65 47.55,104.75 47.55,104.8"/><path fill="#999" d="M44.4,99.55Q44.5,99.5 44.5,99.45 44.5,99.35 44.4,99.3 44.25,99.25 44.1,99.25 43.9,99.25 43.8,99.3 43.65,99.35 43.65,99.45 43.65,99.5 43.8,99.55 43.9,99.65 44.1,99.65 44.25,99.65 44.4,99.55"/><path fill="#999" d="M41.7,101.45Q41.7,101.4 41.55,101.3 41.45,101.25 41.25,101.25 41.1,101.25 40.95,101.3 40.85,101.4 40.85,101.45 40.85,101.55 40.95,101.6 41.1,101.65 41.25,101.65 41.45,101.65 41.55,101.6 41.7,101.55 41.7,101.45"/><path fill="#999" d="M40.85,103.4Q40.7,103.45 40.7,103.55 40.7,103.6 40.85,103.65 40.95,103.75 41.1,103.75 41,103.85 41,103.9 41,104 41.1,104.05 41.25,104.1 41.45,104.1 41.6,104.1 41.75,104.05 41.85,104 41.85,103.9 41.85,103.85 41.75,103.75 41.6,103.7 41.45,103.7 41.402,103.7 41.35,103.7 41.402,103.698 41.45,103.65 41.55,103.6 41.55,103.55 41.55,103.45 41.45,103.4 41.3,103.35 41.15,103.35 40.95,103.35 40.85,103.4"/><path fill="#999" d="M44.15,102.9Q44,102.85 43.85,102.85 43.65,102.85 43.55,102.9 43.4,102.95 43.4,103.05 43.4,103.15 43.55,103.2 43.65,103.25 43.85,103.25 44,103.25 44.15,103.2 44.3,103.15 44.3,103.05 44.3,102.95 44.15,102.9"/><path fill="#999" d="M45.25,103.75Q45.1,103.7 44.95,103.7 44.75,103.7 44.6,103.75 44.5,103.8 44.5,103.9 44.5,103.95 44.6,104 44.75,104.1 44.95,104.1 45.1,104.1 45.25,104 45.35,103.95 45.35,103.9 45.35,103.8 45.25,103.75"/><path fill="#999" d="M44.9,104.9Q44.75,104.9 44.6,104.95 44.5,105 44.5,105.1 44.5,105.15 44.6,105.2 44.75,105.3 44.9,105.3 45.1,105.3 45.2,105.2 45.35,105.15 45.35,105.1 45.35,105 45.2,104.95 45.1,104.9 44.9,104.9"/><path fill="#999" d="M49.75,106.85Q49.9,106.8 49.9,106.7 49.9,106.65 49.75,106.55 49.65,106.5 49.45,106.5 49.3,106.5 49.15,106.55 49.05,106.65 49.05,106.7 49.05,106.8 49.15,106.85 49.3,106.9 49.45,106.9 49.65,106.9 49.75,106.85"/><path fill="#999" d="M46.4,105.55Q46.25,105.55 46.1,105.6 46,105.7 46,105.75 46,105.85 46.1,105.9 46.25,105.95 46.4,105.95 46.6,105.95 46.7,105.9 46.85,105.85 46.85,105.75 46.85,105.7 46.7,105.6 46.6,105.55 46.4,105.55"/><path fill="#999" d="M39.7,99.75Q39.55,99.7 39.4,99.7 39.2,99.7 39.05,99.75 38.95,99.8 38.95,99.9 38.85,99.85 38.75,99.85 38.6,99.85 38.45,99.9 38.35,99.95 38.35,100.05 38.25,100 38.05,100 37.9,100 37.75,100.05 37.65,100.15 37.65,100.2 37.65,100.3 37.75,100.35 37.9,100.4 38.05,100.4 38.25,100.4 38.35,100.35 38.5,100.3 38.5,100.2 38.65,100.25 38.75,100.25 38.95,100.25 39.05,100.2 39.2,100.15 39.2,100.05 39.3,100.1 39.4,100.1 39.55,100.1 39.7,100.05 39.8,99.95 39.8,99.9 39.8,99.8 39.7,99.75"/><path fill="#999" d="M36.9,103.9Q37.05,104 37.25,104 37.4,104 37.5,103.9 37.65,103.85 37.65,103.8 37.65,103.7 37.5,103.65 37.4,103.6 37.25,103.6 37.05,103.6 36.9,103.65 36.8,103.7 36.8,103.8 36.8,103.85 36.9,103.9"/><path fill="#999" d="M40.45,102.45Q40.3,102.4 40.15,102.4 39.95,102.4 39.85,102.45 39.7,102.5 39.7,102.6 39.7,102.649 39.75,102.65L39.7,102.65Q39.55,102.6 39.4,102.6 39.25,102.6 39.1,102.65 38.95,102.7 38.95,102.8 38.95,102.85 39.1,102.95 39.25,103 39.4,103 39.55,103 39.7,102.95 39.85,102.85 39.85,102.8L39.85,102.75Q39.95,102.8 40.15,102.8 40.3,102.8 40.45,102.75 40.55,102.7 40.55,102.6 40.55,102.5 40.45,102.45"/><path fill="#999" d="M39.7,103.45Q39.5,103.45 39.35,103.5 39.25,103.55 39.25,103.65 39.25,103.75 39.35,103.8 39.5,103.85 39.7,103.85 39.85,103.85 39.95,103.8 40.1,103.75 40.1,103.65 40.1,103.55 39.95,103.5 39.85,103.45 39.7,103.45"/><path fill="#999" d="M38.75,104.8Q38.9,104.9 39.05,104.9 39.25,104.9 39.35,104.8 39.5,104.75 39.5,104.7 39.5,104.6 39.35,104.55 39.25,104.5 39.05,104.5 38.9,104.5 38.75,104.55 38.65,104.6 38.65,104.7 38.65,104.75 38.75,104.8"/><path fill="#999" d="M84.05,101.5Q84.05,101.45 83.9,101.4 83.8,101.3 83.6,101.3 83.45,101.3 83.3,101.4 83.2,101.45 83.2,101.5 83.2,101.6 83.3,101.65 83.45,101.7 83.6,101.7 83.8,101.7 83.9,101.65 84.05,101.6 84.05,101.5"/><path fill="#999" d="M83.45,100.45Q83.45,100.4 83.3,100.3 83.2,100.25 83,100.25 82.85,100.25 82.7,100.3 82.6,100.4 82.6,100.45 82.6,100.55 82.7,100.6 82.85,100.65 83,100.65 83.2,100.65 83.3,100.6 83.45,100.55 83.45,100.45"/></g><g id="pierna_i" transform="matrix(1 0 0 1 46.85 80.25)"><g id="pierna i_0.0"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M0,0L0,19.55"/></g></g><g id="pierna_d" transform="matrix(1 0 0 1 73.75 78.75)"><g id="pierna d_0.0"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M0,0L0.4,19.55"/></g></g><g mask="url(#mask_)"/><mask id="mask_"/><g style="display:none;"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M30.4,70.55Q27.05,70 25.3,70.25 25,70.25 24.7,70.3 22.05,70.7 20.7,72.45 19.3,74.5 20.7,77.2 22,79.65 25.1,81 25.8,81.3 26.65,81.55"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="none;inline;none;none"/></g><g><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M29.2,69.9Q25.85,69.85 24.15,70.35 23.85,70.35 23.55,70.45 21,71.25 19.9,73.15 18.75,75.35 20.55,77.85 22.2,80.1 25.4,81 26.15,81.2 27.05,81.35"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="inline;none;inline;inline"/></g><g style="display:none;"><path fill="#F90" d="M24.6,80.8Q23.7,82.15 24,83.7 24.3,85.2 25.6,86.1 26.9,87.05 28.4,86.75 29.9,86.5 30.85,85.15 31.8,83.9 31.5,82.35 31.2,80.8 29.85,79.85 28.6,79.05 27.1,79.3 25.6,79.6 24.6,80.8"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.656;1" values="none;inline;inline"/></g><g style="display:none;"><path fill="#F90" d="M24.55,86.05Q25.7,87.2 27.25,87.1 28.8,87.05 29.9,85.85 31,84.7 30.95,83.15 30.85,81.6 29.65,80.5 28.55,79.45 27,79.5 25.45,79.6 24.3,80.7 23.25,81.9 23.35,83.45 23.4,85 24.55,86.05"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="none;inline;none;none"/></g><g><path fill="#F90" d="M25.6,86.1Q26.9,87.05 28.4,86.75 29.9,86.5 30.85,85.15 31.8,83.9 31.5,82.35 31.2,80.8 29.85,79.85 28.6,79.05 27.1,79.3 25.6,79.6 24.6,80.8 23.7,82.15 24,83.7 24.3,85.2 25.6,86.1"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;1" values="inline;none;none"/></g><g style="display:none;"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M87.45,67.4Q89.35,66.55 91.35,65.15 93.75,63.55 94.75,61.45 97.95,55.6 92,52.25 89.2,50.65 85.9,50.45"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.636;1" values="none;inline;none;none"/></g><g style="display:none;"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M86.9,66.85Q88.9,66.65 91.25,65.85 93.95,65 95.5,63.1 100.25,57.95 95.75,52.05 93.6,49.25 90.6,47.8"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.126;0.636;0.656;1" values="none;inline;none;inline;none;none"/></g><g><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M86.2,63.9Q87.8,64.95 90.05,65.65 92.5,66.35 94.4,66.15 99.7,65.6 102.3,61.55 105.35,56.65 101.7,49.85"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="inline;none;inline;inline"/></g><g id="torso1" transform="matrix(0.992 -0.064 0.065 1.006 24.65 25.75)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="57.845,53.474;57.845,53.474;58.581,55.479;58.581,55.479;57.845,53.474;57.845,53.474" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="-3.718,0,0;-3.718,0,0;-1.951,0,0;-1.951,0,0;-3.718,0,0;-3.718,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewX" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="0;0;-0.001;-0.001;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.994,1.008;0.994,1.008" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="-31.5,-29.6;-31.5,-29.6;-31.45,-29.55;-31.45,-29.55;-31.5,-29.6;-31.5,-29.6" calcMode="discrete"/><g id="torso1_1.0"><g><path fill="none" stroke="#FC3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M28.85,3.35L28.7,0"/><path fill="none" stroke="#FC3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M25.2,2L26.75,4.05"/><path fill="none" stroke="#FC3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M32.5,1.8L30.95,3.85"/></g></g><g><g id="torso1_0.0.0"><path fill="#FFB933" d="M46.45,19.6L41.8,13.9 16.85,15.9 13.05,21.85 1.8,39.85Q1.7,39.95 1.65,40.1 -1.95,48.6 2.2,54.7 5.65,59.75 12.7,60.65L55.1,57.05Q59.45,55.05 61.55,50.95 64.8,44.75 60.7,37.2 60.55,36.95 60.4,36.65L54.15,29 46.45,19.6"/></g><g id="torso1_0.0.1"><path fill="#FFA702" d="M21.7,43.6Q20.15,42.3 18.15,42.5 16.15,42.75 14.75,44.35 13.45,46 13.65,48.1 13.8,50.2 15.35,51.55 16.9,52.9 18.95,52.65 20.95,52.45 22.3,50.8 23.6,49.15 23.45,47.05 23.25,44.95 21.7,43.6"/></g><g id="torso1_0.0.2"><path fill="#FFA702" d="M55.35,48Q56.65,46.35 56.5,44.25 56.3,42.15 54.75,40.8 53.2,39.5 51.2,39.7 49.2,39.95 47.8,41.55 46.5,43.2 46.7,45.3 46.85,47.4 48.4,48.75 49.95,50.1 52,49.85 54,49.65 55.35,48"/></g><g id="torso1_0.0.3"><path fill="#F90" d="M20.95,9.35L16.85,15.9 41.8,13.9 37.15,8.25Q32.95,2.8 28.75,3.1 27.35,3.2 26.05,3.9 25.3,4.3 24.6,4.9 22.7,6.4 20.95,9.35"/></g></g></g><g id="boca_sonrie" transform="matrix(0.989 -0.099 0.101 1.003 57.85 66.9)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="62.934,69.276;62.934,69.276;63.208,71.478;63.208,71.478;62.969,71.749;62.969,71.749;63.208,71.478;63.208,71.478;62.934,69.276;62.934,69.276" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="-5.738,0,0;-5.738,0,0;-3.971,0,0;-3.971,0,0;-2.02,0,0;-2.02,0,0;-3.971,0,0;-3.971,0,0;-5.738,0,0;-5.738,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.005;0.005" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.994,1.008;0.994,1.008" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="-4.85,-2.85;-4.85,-2.85;-4.9,-2.85;-4.9,-2.85;-4.85,-2.85;-4.85,-2.85" calcMode="discrete"/><g id="boca sonrie_0.0"><path fill="none" stroke="#0E2D38" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M10,1.2Q9.65,2.55 8.6,3.6 7.05,5.2 4.85,5.2 2.7,5.2 1.1,3.6 0.05,2.55 -0.3,1.2"/></g></g><g style="display:none;"><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.992 -0.125 0.125 0.992 47.2 53.9)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="61.136,58.686;61.136,58.686;61.25,58.937;61.25,58.937" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="-7.167,0,0;-7.167,0,0;-6.513,0,0;-6.513,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="0;0;-0.236;-0.236" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="1,1;1,1;0.984,1.048;0.984,1.048" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="-13.15,-6.45;-13.15,-6.45;-13.3,-6.75;-13.3,-6.75" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.841;1" values="none;inline;inline"/></g><g style="display:none;"><use xlink:href="#ojos4" transform="matrix(0.998 -0.068 0.052 0.757 47.55 54.6)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="61.147,58.68;61.147,58.68;61.144,58.656;61.144,58.656" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="-3.903,0,0;-3.903,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewX" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="-0.001;-0.001;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="1,0.759;1,0.759;1,1;1,1" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="-13.3,-6.55;-13.3,-6.55;-13.3,-6.45;-13.3,-6.45" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.828;0.841;1" values="none;inline;none;none"/></g><g style="display:none;"><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.992 -0.125 0.125 0.992 47.2 53.9)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="61.136,58.686;61.136,58.686;61.25,58.937;61.25,58.937;61.202,58.746;61.202,58.746" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="-7.167,0,0;-7.167,0,0;-6.513,0,0;-6.513,0,0;-7.167,0,0;-7.167,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="0;0;-0.236;-0.236;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="1,1;1,1;0.984,1.048;0.984,1.048;1,0.689;1,0.689" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="-13.15,-6.45;-13.15,-6.45;-13.3,-6.75;-13.3,-6.75;-13.2,-6.6;-13.2,-6.6" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.775;0.828;1" values="none;inline;none;none"/></g><g style="display:none;"><use xlink:href="#ojos4" transform="matrix(0.998 -0.068 0.052 0.757 47.55 54.6)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="61.147,58.68;61.147,58.68;61.144,58.656;61.144,58.656" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="-3.903,0,0;-3.903,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewX" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="-0.001;-0.001;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="1,0.759;1,0.759;1,1;1,1" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="-13.3,-6.55;-13.3,-6.55;-13.3,-6.45;-13.3,-6.45" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.762;0.775;1" values="none;inline;none;none"/></g><g style="display:none;"><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.977 -0.116 0.119 1.041 47.45 53.45)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="61.25,58.937;61.25,58.937;61.202,58.746;61.202,58.746" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="-6.513,0,0;-6.513,0,0;-7.167,0,0;-7.167,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="-0.236;-0.236;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="0.984,1.048;0.984,1.048;1,0.689;1,0.689" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="-13.3,-6.75;-13.3,-6.75;-13.2,-6.6;-13.2,-6.6" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.656;0.762;1" values="none;inline;none;none"/></g><g style="display:none;"><g id="ojos3" transform="matrix(0.983 -0.047 0.046 1.046 48.4 54.65)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="61.879,61.03;61.879,61.03;61.954,61.181;61.954,61.181;61.879,61.03;61.879,61.03" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="-2.508,0,0;-2.508,0,0;-0.557,0,0;-0.557,0,0;-2.508,0,0;-2.508,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="-0.235;-0.235;-0.236;-0.236;-0.235;-0.235" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.984,1.048;0.984,1.048" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="-13.4,-6.7;-13.4,-6.7;-13.35,-6.6;-13.35,-6.6;-13.4,-6.7;-13.4,-6.7" calcMode="discrete"/><g><g id="ojos3_1.0.0"><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M10.15,7.1L4.55,11.2M10.15,7.1L3.5,3.45"/></g><g id="ojos3_1.0.1"><path fill="#FFF" d="M16.75,1.3Q14.95,2.95 14.8,5.35 14.65,7.75 16.3,9.4 17.9,11.35 20.3,11.5 22.75,11.65 24.5,9.9 26.35,8.5 26.5,6.1 26.65,3.7 24.95,1.8 23.5,0.15 21.05,0 18.65,-0.15 16.75,1.3"/></g><g id="ojos3_1.0.2"><path fill="#0E2D38" d="M23.65,2.95Q22.7,2 21.15,1.9 19.55,1.8 18.3,2.75 17.1,3.85 17,5.45 16.9,7.05 18,8.15 19.05,9.45 20.65,9.55 22.3,9.65 23.45,8.5 24.7,7.55 24.8,5.95 24.85,5.45 24.75,5.05L22.15,4.7 23.65,2.95"/></g></g></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="none;inline;none;none"/></g><g><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.977 -0.116 0.119 1.041 47.45 53.45)"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;1" values="inline;none;none"/></g><g style="display:none;"><use xlink:href="#lupa" transform="matrix(0.271 -0.963 0.963 0.271 65.05 51.6)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="82.438,47.316;82.438,47.316;98.179,46.775;98.179,46.775" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="-74.279,0,0;-74.279,0,0;-50.019,0,0;-50.019,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="0.999,0.999;0.999,0.999;0.998,0.998;0.998,0.998" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="-8.85,-15.6;-8.85,-15.6;-8.85,-15.55;-8.85,-15.55" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.636;1" values="none;inline;inline"/></g><g style="display:none;"><g id="lupa1" transform="matrix(-0.489 -0.872 0.872 -0.489 71.2 67.45)"><g id="lupa3_0.0"><g><path fill="none" stroke="#999" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M7.95,8.2L7.95,26.7"/><path fill="#6CF" stroke="#999" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M15.8,-3.7Q12.65,-6.85 8.2,-6.85 3.75,-6.85 0.55,-3.7 -2.6,-0.5 -2.6,3.95 -2.6,8.4 0.55,11.55 3.75,14.75 8.2,14.75 12.65,14.75 15.8,11.55 19,8.4 19,3.95 19,-0.5 15.8,-3.7"/></g></g></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.636;1" values="none;inline;none;none"/></g><g><use xlink:href="#lupa" transform="matrix(0.643 -0.766 0.766 0.643 80.65 43.55)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="98.179,46.775;98.179,46.775;82.438,47.316;82.438,47.316" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="-50.019,0,0;-50.019,0,0;-74.279,0,0;-74.279,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="0.998,0.998;0.998,0.998;0.999,0.999;0.999,0.999" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="-8.85,-15.55;-8.85,-15.55;-8.85,-15.6;-8.85,-15.6" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;1" values="inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M76.95,57.2Q76.4,54.65 74.15,53.15 72.15,51.8 69.55,52.3 66.95,52.8 65.35,54.85 63.95,57.1 64.45,59.6 64.95,62.2 67.15,63.45 69.4,65.05 71.9,64.55 74.5,64.05 75.9,61.75 77.45,59.75 76.95,57.2"/><path fill="#0E2D38" d="M74.8,56.6L72,56.95 73.05,54.7Q71.8,53.95 70.15,54.25 68.45,54.6 67.4,55.95 66.45,57.45 66.8,59.1 67.15,60.85 68.6,61.7 70.05,62.75 71.75,62.4 73.5,62.1 74.4,60.55 75.45,59.2 75.1,57.5 75,56.95 74.8,56.6"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.49;0.636;1" values="none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M76.25,58.95Q77.3,57.25 76.4,55.85 75.4,54.45 73,54.15 70.85,53.9 68.45,54.9 66,55.9 64.85,57.65 63.9,59.45 64.85,60.85 65.85,62.3 68.15,62.45 70.6,62.75 72.9,61.75 75.3,60.75 76.25,58.95"/><path fill="#0E2D38" d="M74.25,56.05L71.65,57.1 72.2,55.4Q70.9,55.3 69.35,55.95 67.8,56.7 67.05,57.8 66.35,58.95 67,59.85 67.7,60.85 69.25,60.95 70.75,61.2 72.35,60.45 74,59.85 74.6,58.6 75.35,57.45 74.7,56.55 74.5,56.25 74.25,56.05"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.47;0.477;1" values="none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M74.15,53.15Q72.15,51.8 69.55,52.3 66.95,52.8 65.35,54.85 63.95,57.1 64.45,59.6 64.95,62.2 67.15,63.45 69.4,65.05 71.9,64.55 74.5,64.05 75.9,61.75 77.45,59.75 76.95,57.2 76.4,54.65 74.15,53.15"/><path fill="#0E2D38" d="M72,56.95L73.05,54.7Q71.8,53.95 70.15,54.25 68.45,54.6 67.4,55.95 66.45,57.45 66.8,59.1 67.15,60.85 68.6,61.7 70.05,62.75 71.75,62.4 73.5,62.1 74.4,60.55 75.45,59.2 75.1,57.5 75,56.95 74.8,56.6L72,56.95"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.179;0.47;1" values="none;inline;none;none"/></g><g style="display:none;"><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M74.2,56Q74.25,56.15 74.3,56.35 74.8,58.25 74,59.85 73.15,61.45 71.55,61.9 69.9,62.4 68.35,61.45 66.75,60.45 66.3,58.55 66.25,58.4 66.25,58.15"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.166;0.179;0.477;0.49;1" values="none;inline;none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M76.4,55.85Q75.4,54.45 73,54.15 70.85,53.9 68.45,54.9 66,55.9 64.85,57.65 63.9,59.45 64.85,60.85 65.85,62.3 68.15,62.45 70.6,62.75 72.9,61.75 75.3,60.75 76.25,58.95 77.3,57.25 76.4,55.85"/><path fill="#0E2D38" d="M71.65,57.1L72.2,55.4Q70.9,55.3 69.35,55.95 67.8,56.7 67.05,57.8 66.35,58.95 67,59.85 67.7,60.85 69.25,60.95 70.75,61.2 72.35,60.45 74,59.85 74.6,58.6 75.35,57.45 74.7,56.55 74.5,56.25 74.25,56.05L71.65,57.1"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.159;0.166;1" values="none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M69.55,52.3Q66.95,52.8 65.35,54.85 63.95,57.1 64.45,59.6 64.95,62.2 67.15,63.45 69.4,65.05 71.9,64.55 74.5,64.05 75.9,61.75 77.45,59.75 76.95,57.2 76.4,54.65 74.15,53.15 72.15,51.8 69.55,52.3"/><path fill="#0E2D38" d="M74.4,60.55Q75.45,59.2 75.1,57.5 75,56.95 74.8,56.6L72,56.95 73.05,54.7Q71.8,53.95 70.15,54.25 68.45,54.6 67.4,55.95 66.45,57.45 66.8,59.1 67.15,60.85 68.6,61.7 70.05,62.75 71.75,62.4 73.5,62.1 74.4,60.55"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.159;1" values="none;inline;none;none"/></g><g id="mano" transform="matrix(0.77 0.638 0.638 -0.77 96.95 48.7)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="102.339,48.227;102.339,48.227;88.769,47.255;88.769,47.255;83.947,48.961;83.947,48.961;88.921,48.542;88.921,48.542;102.339,48.227;102.339,48.227" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="-140.39,0,0;-140.39,0,0;-164.648,0,0;-164.648,0,0;150.351,0,0;150.351,0,0;-164.648,0,0;-164.648,0,0;-140.39,0,0;-140.39,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="180;180" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="-1,1;-1,1" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;0.655;0.656;1" values="-3.85,-3.8;-3.85,-3.8;-3.8,-3.75;-3.8,-3.75;-3.8,-3.8;-3.8,-3.8;-3.85,-3.8;-3.85,-3.8" calcMode="discrete"/><g id="mano_0.0"><path fill="#F90" d="M7.6,3.65Q7.5,2.1 6.3,1 5.2,-0.05 3.65,0 2.1,0.1 0.95,1.2 -0.1,2.4 0,3.95 0.05,5.5 1.2,6.55 2.35,7.7 3.9,7.6 5.45,7.55 6.55,6.35 7.65,5.2 7.6,3.65"/></g></g></g></svg>
@@ -0,0 +1,112 @@
1
+ require 'spec_helper'
2
+
3
+ feature 'Chapters flow', organization_workspace: :test do
4
+ let(:haskell) { create(:haskell) }
5
+
6
+ let!(:chapter) {
7
+ create(:chapter, name: 'Functional Programming', lessons: lessons) }
8
+
9
+ let(:lessons) { [lesson_1, lesson_2] }
10
+
11
+ let(:lesson_1) {
12
+ create(:lesson, name: 'Values and Functions', language: haskell, description: 'Values are everywhere...', exercises: [
13
+ create(:exercise, name: 'The Basic Values', description: "Let's say we want to declare a variable...")
14
+ ])
15
+ }
16
+
17
+ let(:lesson_2) {
18
+ create(:lesson, name: 'Monads and Functors', language: haskell, description: 'Monds are everywhere too...', exercises: [
19
+ create(:exercise, name: 'The Maybe Functor', description: "Let's say we want to model absense of value...")
20
+ ])
21
+ }
22
+
23
+ before { reindex_current_organization! }
24
+
25
+ context 'multilesson' do
26
+ context 'no appendix' do
27
+ scenario 'show chapter, no appendix' do
28
+ visit "/chapters/#{chapter.id}"
29
+
30
+ expect(page).to have_text('Functional Programming')
31
+ expect(page).to have_text('The Basic Values')
32
+
33
+ expect(page).to have_text('Monads and Functors')
34
+ expect(page).to have_text('The Maybe Functor')
35
+
36
+ expect(page).to have_text(chapter.description)
37
+
38
+ expect(page).to_not have_text('Appendix')
39
+ expect(page).to have_text('Lessons')
40
+ end
41
+ end
42
+
43
+ context 'with appendix' do
44
+ before { chapter.topic.update appendix: 'Check this article about endofunctors' }
45
+
46
+ scenario 'show chapter, with appendix' do
47
+ visit "/chapters/#{chapter.id}"
48
+
49
+ expect(page).to have_text('Functional Programming')
50
+ expect(page).to have_text('The Basic Values')
51
+
52
+ expect(page).to have_text('Monads and Functors')
53
+ expect(page).to have_text('The Maybe Functor')
54
+
55
+ expect(page).to have_text('Appendix')
56
+ expect(page).to have_text('Lessons')
57
+ end
58
+
59
+ scenario 'show appendix' do
60
+ visit "/chapters/#{chapter.id}/appendix"
61
+ expect(page).to have_text('Appendix')
62
+ expect(page).to have_text('endofunctors')
63
+ end
64
+ end
65
+ end
66
+
67
+ context 'monolesson' do
68
+ let(:lessons) { [lesson_1] }
69
+
70
+ context 'with appendix' do
71
+ before { chapter.topic.update appendix: 'Check this article about endofunctors' }
72
+
73
+ scenario 'show chapter, with appendix' do
74
+ visit "/chapters/#{chapter.id}"
75
+
76
+ expect(page).to have_text('Functional Programming')
77
+ expect(page).to have_text('The Basic Values')
78
+
79
+ expect(page).to have_text(chapter.description)
80
+
81
+ expect(page).not_to have_text("Let's say we want to declare a variable...")
82
+
83
+ expect(page).to have_text('Appendix')
84
+ expect(page).not_to have_text('Lessons')
85
+ end
86
+
87
+ scenario 'show appendix' do
88
+ visit "/chapters/#{chapter.id}/appendix"
89
+ expect(page).to have_text('Appendix')
90
+ expect(page).to have_text('endofunctors')
91
+ end
92
+ end
93
+
94
+ end
95
+
96
+ context 'incognito user' do
97
+ before { Organization.current.update! incognito_mode_enabled: true }
98
+ scenario 'show chapter, no appendix' do
99
+ visit "/chapters/#{chapter.id}"
100
+
101
+ expect(page).to have_text('Functional Programming')
102
+ expect(page).to have_text('The Basic Values')
103
+
104
+ expect(page).to have_text('Monads and Functors')
105
+ expect(page).to have_text('The Maybe Functor')
106
+
107
+ expect(page).to_not have_text('Appendix')
108
+
109
+ expect(page).to have_text('Sign in')
110
+ end
111
+ end
112
+ end
@@ -42,7 +42,7 @@ feature 'Login Flow', organization_workspace: :test do
42
42
 
43
43
  expect(page).to_not have_text('Sign in')
44
44
  expect(page).to have_text('Sign Out')
45
- expect(page).to have_text('awesomeRubyGuide')
45
+ expect(page).to have_text('C1')
46
46
  end
47
47
 
48
48
  scenario 'can logout', :element_not_interactable_error do
@@ -102,6 +102,7 @@ feature 'Terms Flow', organization_workspace: :test do
102
102
  visit '/discussions'
103
103
  expect(page).to have_text('Accept terms')
104
104
 
105
+ check :user_terms_of_service
105
106
  click_on 'Accept'
106
107
  expect(page).to have_text('Discussions')
107
108
  end
@@ -111,6 +112,7 @@ feature 'Terms Flow', organization_workspace: :test do
111
112
  visit '/'
112
113
  expect(page).to have_text('Accept terms')
113
114
 
115
+ check :user_terms_of_service
114
116
  click_on 'Accept'
115
117
  expect(page).to have_text(test_organization.book.name)
116
118
  end
@@ -15,7 +15,6 @@ feature 'Topic Flow', organization_workspace: :test do
15
15
  visit "/topics/#{topic_in_path.transparent_id}"
16
16
 
17
17
  expect(page).to have_text('Functional Programming')
18
- expect(page).to have_text('Lessons')
19
18
  end
20
19
 
21
20
  scenario 'visit topic in path not transparently' do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe IconsHelper, organization_workspace: :test do
4
4
  helper IconsHelper
5
- helper FontAwesome::Rails::IconHelper
5
+ helper FontAwesome5::Rails::IconHelper
6
6
 
7
7
  describe '#language_icon' do
8
8
  let(:haskell) { create(:language, name: 'Haskell') }
@@ -16,7 +16,7 @@ describe IconsHelper, organization_workspace: :test do
16
16
  }
17
17
  let(:failed_submission) { create(:assignment, status: :failed) }
18
18
 
19
- it { expect(status_icon(passed_submission)).to eq '<i class="fa fa-check-circle text-success status-icon"></i>' }
20
- it { expect(status_icon(failed_submission)).to eq '<i class="fa fa-times-circle text-danger status-icon"></i>' }
19
+ it { expect(status_icon(passed_submission)).to eq '<i class="fas fa-check-circle text-success status-icon"></i>' }
20
+ it { expect(status_icon(failed_submission)).to eq '<i class="fas fa-times-circle text-danger status-icon"></i>' }
21
21
  end
22
22
  end
@@ -3,7 +3,7 @@ require 'ostruct'
3
3
 
4
4
  describe ContextualizationResultHelper do
5
5
  helper IconsHelper
6
- helper FontAwesome::Rails::IconHelper
6
+ helper FontAwesome5::Rails::IconHelper
7
7
  helper ContextualizationResultHelper
8
8
 
9
9
 
@@ -13,13 +13,13 @@ describe ContextualizationResultHelper do
13
13
  context 'plain explanation' do
14
14
  let(:expectation_result) { {result: :failed, explanation: 'you must delegate'} }
15
15
 
16
- it { expect(html).to eq '<i class="fa fa-times-circle text-danger status-icon"></i> you must delegate' }
16
+ it { expect(html).to eq '<i class="fas fa-times-circle text-danger status-icon"></i> you must delegate' }
17
17
  end
18
18
 
19
19
  context 'html explanation' do
20
20
  let(:expectation_result) { {result: :failed, explanation: 'you must use <strong>if</strong>'} }
21
21
 
22
- it { expect(html).to eq '<i class="fa fa-times-circle text-danger status-icon"></i> you must use <strong>if</strong>' }
22
+ it { expect(html).to eq '<i class="fas fa-times-circle text-danger status-icon"></i> you must use <strong>if</strong>' }
23
23
  end
24
24
  end
25
25
 
@@ -35,7 +35,7 @@ describe ContextualizationResultHelper do
35
35
  test_results: [{title: '2 is 2', status: :passed, result: ''}]) }
36
36
 
37
37
  it { expect(html).to be_html_safe }
38
- it { expect(html).to include "<i class=\"fa fa-check-circle text-success status-icon\"></i>" }
38
+ it { expect(html).to include "<i class=\"fas fa-check-circle text-success status-icon\"></i>" }
39
39
  it { expect(html).to include "2 is 2" }
40
40
  end
41
41
 
@@ -47,7 +47,7 @@ describe ContextualizationResultHelper do
47
47
  exercise: problem,
48
48
  test_results: [{title: '2 is 2', status: :failed, result: 'something _went_ wrong'}]) }
49
49
 
50
- it { expect(html).to include "<i class=\"fa fa-times-circle text-danger status-icon\"></i>" }
50
+ it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
51
51
  it { expect(html).to include "2 is 2" }
52
52
  it { expect(html).to include "<pre>something _went_ wrong</pre>" }
53
53
  end
@@ -59,7 +59,7 @@ describe ContextualizationResultHelper do
59
59
  exercise: problem,
60
60
  test_results: [{title: '2 is 2', status: :failed, result: 'something went _really_ wrong'}]) }
61
61
 
62
- it { expect(html).to include "<i class=\"fa fa-times-circle text-danger status-icon\"></i>" }
62
+ it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
63
63
  it { expect(html).to include "2 is 2" }
64
64
  it { expect(html).to include "<p>something went <em>really</em> wrong</p>" }
65
65
  end
@@ -72,7 +72,7 @@ describe ContextualizationResultHelper do
72
72
  test_results: [{title: 'foo is 2', status: :failed, result: 'foo is undefined', summary: {type: 'undefined_variable', message: 'you are using things that are _not defined_'}}]) }
73
73
 
74
74
  it { expect(html).to include 'foo is 2: you are using things that are <em>not defined</em>' }
75
- it { expect(html).to include "<i class=\"fa fa-times-circle text-danger status-icon\"></i>" }
75
+ it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
76
76
  it { expect(html).to include '<p>foo is undefined</p>' }
77
77
  end
78
78
 
@@ -84,7 +84,7 @@ describe ContextualizationResultHelper do
84
84
  test_results: [{title: '', status: :failed, result: 'foo is undefined', summary: {type: 'undefined_variable', message: 'you are using things that are _not defined_'}}]) }
85
85
 
86
86
  it { expect(html).to include 'you are using things that are <em>not defined</em>' }
87
- it { expect(html).to include "<i class=\"fa fa-times-circle text-danger status-icon\"></i>" }
87
+ it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
88
88
  it { expect(html).to include '<p>foo is undefined</p>' }
89
89
  end
90
90
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe WithStudentPathNavigation, organization_workspace: :test do
4
4
  helper WithStudentPathNavigation
5
- helper FontAwesome::Rails::IconHelper
5
+ helper FontAwesome5::Rails::IconHelper
6
6
 
7
7
  describe '#next_button' do
8
8
  let(:current_user) { create(:user) }
@@ -14,9 +14,9 @@ describe WithStudentPathNavigation, organization_workspace: :test do
14
14
  let!(:exercise_3) { create(:exercise, id: 13, name: 'exercise 3', guide: guide) }
15
15
 
16
16
  context 'when user did not submit any solution' do
17
- it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
18
- it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\">Next: exercise 3 <i class=\"fa fa-chevron-right\"></i></a>" }
19
- it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_1.friendly_name}\">Next pending: exercise 1 <i class=\"fa fa-chevron-right\"></i></a>" }
17
+ it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
18
+ it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 3</span><i class=\"fas fa-chevron-right\"></i></a>" }
19
+ it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_1.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 1</span><i class=\"fas fa-chevron-right\"></i></a>" }
20
20
  end
21
21
 
22
22
  context 'when on last unresolved exercise' do
@@ -25,9 +25,9 @@ describe WithStudentPathNavigation, organization_workspace: :test do
25
25
  exercise_3.submit_solution!(current_user).passed!
26
26
  end
27
27
 
28
- it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
28
+ it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
29
29
  it { expect(next_button(exercise_2)).to be nil }
30
- it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next pending: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
30
+ it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
31
31
  end
32
32
 
33
33
  context 'when user did submit a solution' do
@@ -35,9 +35,9 @@ describe WithStudentPathNavigation, organization_workspace: :test do
35
35
  exercise_1.submit_solution!(current_user).passed!
36
36
  end
37
37
 
38
- it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
39
- it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\">Next: exercise 3 <i class=\"fa fa-chevron-right\"></i></a>" }
40
- it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next pending: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
38
+ it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
39
+ it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 3</span><i class=\"fas fa-chevron-right\"></i></a>" }
40
+ it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
41
41
  end
42
42
  end
43
43
 
@@ -46,8 +46,8 @@ describe WithStudentPathNavigation, organization_workspace: :test do
46
46
  let!(:exercise) { create(:exercise, id: 12, name: 'exercise 2', guide: guide) }
47
47
 
48
48
  context 'when user did not submit any exercise' do
49
- it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\">Next: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
50
- it { expect(next_button(exercise)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{reading.friendly_name}\">Next pending: exercise 1 <i class=\"fa fa-chevron-right\"></i></a>" }
49
+ it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
50
+ it { expect(next_button(exercise)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{reading.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 1</span><i class=\"fas fa-chevron-right\"></i></a>" }
51
51
  end
52
52
 
53
53
  context 'when user finished just reading' do
@@ -55,7 +55,7 @@ describe WithStudentPathNavigation, organization_workspace: :test do
55
55
  reading.submit_confirmation!(current_user)
56
56
  end
57
57
 
58
- it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\">Next: exercise 2 <i class=\"fa fa-chevron-right\"></i></a>" }
58
+ it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
59
59
  it { expect(next_button(exercise)).to eq nil }
60
60
  end
61
61
  end
@@ -83,12 +83,12 @@ describe WithStudentPathNavigation, organization_workspace: :test do
83
83
  let(:lessons) { [lesson_1, lesson_2, lesson_3] }
84
84
 
85
85
  context 'one suggestion' do
86
- it { expect(next_button(lesson_2)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_3.friendly_name}\">Next: #{lesson_3.name} <i class=\"fa fa-chevron-right\"></i></a>" }
86
+ it { expect(next_button(lesson_2)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_3.friendly_name}\"><span class=\"fa5-text-r\">Next: #{lesson_3.name}</span><i class=\"fas fa-chevron-right\"></i></a>" }
87
87
  it { expect(next_button(lesson_1)).to be_html_safe }
88
88
  end
89
89
 
90
90
  context 'many suggestions' do
91
- it { expect(next_button(lesson_1)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_2.friendly_name}\">Next: #{lesson_2.name} <i class=\"fa fa-chevron-right\"></i></a>" }
91
+ it { expect(next_button(lesson_1)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_2.friendly_name}\"><span class=\"fa5-text-r\">Next: #{lesson_2.name}</span><i class=\"fas fa-chevron-right\"></i></a>" }
92
92
  it { expect(next_button(lesson_1)).to be_html_safe }
93
93
  end
94
94
  end
@@ -33,11 +33,11 @@ describe('gamification', () => {
33
33
 
34
34
  describe('triggers level change', () => {
35
35
  it('does not trigger when small exp difference', () => {
36
- expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(1050)).toBe(false);
36
+ expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(50)).toBe(false);
37
37
  });
38
38
 
39
39
  it('does trigger when big exp difference', () => {
40
- expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(1500)).toBe(true);
40
+ expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(500)).toBe(true);
41
41
  });
42
42
  });
43
43
 
@@ -0,0 +1,79 @@
1
+ describe('I18n', () => {
2
+
3
+ describe('t / translate', () => {
4
+
5
+ it('accept english translations', () => {
6
+ mumuki.locale = 'en';
7
+ expect(mumuki.I18n.translate('passed')).toBe('Everything is in order! Your solution passed all our tests!');
8
+ })
9
+ it('accept spanish translations', () => {
10
+ mumuki.locale = 'es';
11
+ expect(mumuki.I18n.translate('passed_with_warnings')).toBe('Tu solución funcionó, pero hay cosas que mejorar');
12
+ })
13
+ it('accept chilean translations', () => {
14
+ mumuki.locale = 'es-CL';
15
+ expect(mumuki.I18n.translate('failed')).toBe('Tu solución no pasó las pruebas');
16
+ })
17
+ it('accept portuguese translations', () => {
18
+ mumuki.locale = 'pt';
19
+ expect(mumuki.I18n.translate('errored')).toBe('Opa! Sua solução não pode ser executada');
20
+ })
21
+ it('fails when translation missing', () => {
22
+ mumuki.locale = 'en';
23
+ expect(mumuki.I18n.translate('foo')).toBe('Translation missing: en, `foo`');
24
+ })
25
+
26
+ })
27
+
28
+ describe('register', () => {
29
+ beforeEach(() => {
30
+ mumuki.locale = 'en';
31
+ mumuki.I18n.register({
32
+ en: {
33
+ greet: (data) => `Hi ${data.name}`,
34
+ errored: "D'Oh!"
35
+ }
36
+ })
37
+ })
38
+ it('overrides existing translation key', () => {
39
+ expect(mumuki.I18n.translate('errored')).toBe("D'Oh!");
40
+ })
41
+ it('add missing translation key', () => {
42
+ expect(mumuki.I18n.translate('greet', {name: 'Jane'})).toBe('Hi Jane');
43
+ })
44
+ it('keep non overriding translation key', () => {
45
+ expect(mumuki.I18n.translate('passed')).toBe('Everything is in order! Your solution passed all our tests!');
46
+ })
47
+ })
48
+
49
+ describe('with some prefix', () => {
50
+
51
+ fixture.set(`
52
+ <div class="mu-kindergarten" data-i18n-prefix="testing">
53
+ <button class="mu-kids-button">Click me<button>
54
+ <div class="mu-kids-overlay" style="display: none"></div>
55
+ </div>
56
+ `);
57
+
58
+ beforeEach(() => {
59
+ mumuki.locale = 'en';
60
+ mumuki.I18n.register({
61
+ en: {
62
+ testing_failed: 'Ops! Execution failed',
63
+ }
64
+ })
65
+ });
66
+
67
+ it('Using prefix with existing translation key', () => {
68
+ expect(mumuki.I18n.t('passed')).toBe('Everything is in order! Your solution passed all our tests!');
69
+ });
70
+ it('Use prefix with none existing translation key but default key exists', () => {
71
+ expect(mumuki.I18n.t('failed')).toBe('Ops! Execution failed');
72
+ });
73
+ it('No key found', () => {
74
+ expect(mumuki.I18n.t('foo')).toBe('Translation missing: en, `foo`');
75
+ })
76
+
77
+ });
78
+
79
+ });
@@ -0,0 +1,36 @@
1
+ describe('KidsButton', () => {
2
+
3
+ let button;
4
+
5
+ fixture.set(`
6
+ <div class="mu-kindergarten">
7
+ <button class="mu-kids-button">Click me<button>
8
+ <div class="mu-kids-overlay" style="display: none"></div>
9
+ </div>
10
+ `);
11
+
12
+ beforeEach(() => {
13
+ mumuki.kids = new mumuki.Kids();
14
+ button = new mumuki.submission.KidsSubmitButton($('.mu-kids-button'));
15
+ })
16
+
17
+ it('can create button', () => {
18
+ expect(button).not.toBe(null);
19
+ })
20
+
21
+ it('overlay is hidden by default', () => {
22
+ expect(mumuki.kids.$overlay.css('display')).toBe('none');
23
+ })
24
+
25
+ it('call showOverlay on wait', () => {
26
+ button.wait();
27
+ expect(mumuki.kids.$overlay.css('display')).toBe('block');
28
+ })
29
+
30
+ it('call hideOverlay on continue', () => {
31
+ button.wait();
32
+ button.continue();
33
+ expect(mumuki.kids.$overlay.css('display')).toBe('none');
34
+ })
35
+
36
+ })