rapid-router 7.5.23__tar.gz → 7.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. {rapid_router-7.5.23/rapid_router.egg-info → rapid_router-7.6.0}/PKG-INFO +8 -4
  2. {rapid_router-7.5.23 → rapid_router-7.6.0}/example_project/settings.py +1 -0
  3. rapid_router-7.6.0/game/__init__.py +1 -0
  4. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/messages.py +18 -0
  5. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/python_den_urls.py +6 -0
  6. rapid_router-7.6.0/game/static/game/css/editor.css +47 -0
  7. rapid_router-7.6.0/game/static/game/js/editor.js +23 -0
  8. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/python_den_level_selection.html +3 -3
  9. rapid_router-7.6.0/game/templates/game/python_den_worksheet.html +101 -0
  10. rapid_router-7.6.0/game/tests/test_python_den_worksheet.py +85 -0
  11. rapid_router-7.6.0/game/views/worksheet.py +25 -0
  12. {rapid_router-7.5.23 → rapid_router-7.6.0/rapid_router.egg-info}/PKG-INFO +8 -4
  13. {rapid_router-7.5.23 → rapid_router-7.6.0}/rapid_router.egg-info/SOURCES.txt +5 -0
  14. {rapid_router-7.5.23 → rapid_router-7.6.0}/rapid_router.egg-info/requires.txt +7 -3
  15. rapid_router-7.5.23/game/__init__.py +0 -1
  16. {rapid_router-7.5.23 → rapid_router-7.6.0}/LICENSE.md +0 -0
  17. {rapid_router-7.5.23 → rapid_router-7.6.0}/MANIFEST.in +0 -0
  18. {rapid_router-7.5.23 → rapid_router-7.6.0}/README.md +0 -0
  19. {rapid_router-7.5.23 → rapid_router-7.6.0}/example_project/__init__.py +0 -0
  20. {rapid_router-7.5.23 → rapid_router-7.6.0}/example_project/rapid_router_test_settings.py +0 -0
  21. {rapid_router-7.5.23 → rapid_router-7.6.0}/example_project/urls.py +0 -0
  22. {rapid_router-7.5.23 → rapid_router-7.6.0}/example_project/wsgi.py +0 -0
  23. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/admin.py +0 -0
  24. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/app_settings.py +0 -0
  25. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/cache.py +0 -0
  26. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/character.py +0 -0
  27. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/decor.py +0 -0
  28. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/__init__.py +0 -0
  29. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/base_game_test.py +0 -0
  30. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/custom_handler.py +0 -0
  31. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/editor_page.py +0 -0
  32. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/game_page.py +0 -0
  33. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/selenium_test_case.py +0 -0
  34. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_cow_crashes.py +0 -0
  35. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_language_dropdown.py +0 -0
  36. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_level_editor.py +0 -0
  37. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_level_failures.py +0 -0
  38. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_level_selection.py +0 -0
  39. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_level_win.py +0 -0
  40. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_play_through.py +0 -0
  41. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_python_levels.py +0 -0
  42. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_regressions.py +0 -0
  43. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_saving_workspace.py +0 -0
  44. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/end_to_end_tests/test_turning_around.py +0 -0
  45. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/forms.py +0 -0
  46. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/level_management.py +0 -0
  47. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0001_squashed_0025_levels_ordering_pt1.py +0 -0
  48. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0026_levels_pt2.py +0 -0
  49. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0027_change_level_order.py +0 -0
  50. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0028_level_disable_route_score.py +0 -0
  51. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0029_disable_route_scores.py +0 -0
  52. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0029_level_pythonviewenabled.py +0 -0
  53. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0030_merge.py +0 -0
  54. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0031_python_view.py +0 -0
  55. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0032_cannot_turn_left_level.py +0 -0
  56. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0033_recursion_level.py +0 -0
  57. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0034_joes_level.py +0 -0
  58. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0035_disable_route_score_level_70.py +0 -0
  59. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0036_level_score_73.py +0 -0
  60. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0037_level_score_79.py +0 -0
  61. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0038_level_score_40.py +0 -0
  62. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0039_second_episodes_release.py +0 -0
  63. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0040_auto_20150128_2019.py +0 -0
  64. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0041_level_episode_refs.py +0 -0
  65. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0042_level_score_73.py +0 -0
  66. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0043_auto_20150615_1155.py +0 -0
  67. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0044_auto_20150615_1156.py +0 -0
  68. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0045_decor_z_index.py +0 -0
  69. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0046_set_img_order.py +0 -0
  70. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0047_level_70_is_unsolveable.py +0 -0
  71. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0048_add_cow_field_and_blocks.py +0 -0
  72. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0049_level_score_34.py +0 -0
  73. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0050_level_score_40.py +0 -0
  74. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0051_level_score_49.py +0 -0
  75. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0052_attempt_night_mode.py +0 -0
  76. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0053_level_70_is_unsolveable_again.py +0 -0
  77. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0054_disable_route_score_for_levels_69_and_74.py +0 -0
  78. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0055_support_multiple_attempts.py +0 -0
  79. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0056_mark_all_attempts_as_best.py +0 -0
  80. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0057_workspace_language_enabled.py +0 -0
  81. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0058_level_theme_name.py +0 -0
  82. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0059_theme_name_data.py +0 -0
  83. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0060_auto_20160208_2144.py +0 -0
  84. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0061_auto_20160208_2144.py +0 -0
  85. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0062_rm_old_theme_decor_models.py +0 -0
  86. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0063_level_character_name.py +0 -0
  87. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0064_character_name_data.py +0 -0
  88. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0065_rename_old_character_field.py +0 -0
  89. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0066_rm_character_model.py +0 -0
  90. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0067_level_score_27.py +0 -0
  91. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0068_fix_episodes_order.py +0 -0
  92. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0069_remove_user_levels_from_episodes.py +0 -0
  93. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0070_update_strings_unicode.py +0 -0
  94. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0071_use_common_models.py +0 -0
  95. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0072_level_50_solution.py +0 -0
  96. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0073_level_75_solution.py +0 -0
  97. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0074_level_74_solution.py +0 -0
  98. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0075_level_48_houses.py +0 -0
  99. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0076_level_locked_for_class.py +0 -0
  100. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0077_alter_level_next_level.py +0 -0
  101. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0078_add_block_types.py +0 -0
  102. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0079_populate_block_type_add_cow_blocks.py +0 -0
  103. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0080_level_disable_algorithm_score.py +0 -0
  104. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0081_first_12_levels_no_algo_score.py +0 -0
  105. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0082_level_43_solution.py +0 -0
  106. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0083_add_cows_to_existing_levels.py +0 -0
  107. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0084_alter_block_block_type.py +0 -0
  108. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0085_add_new_blocks.py +0 -0
  109. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0086_loop_levels.py +0 -0
  110. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0087_workspace_python_view_enabled.py +0 -0
  111. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0088_rename_episodes.py +0 -0
  112. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0089_episodes_in_development.py +0 -0
  113. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0090_add_missing_model_solutions.py +0 -0
  114. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0091_disable_algo_score_if_no_model_solution.py +0 -0
  115. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0092_disable_algo_score_in_custom_levels.py +0 -0
  116. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0093_alter_level_character_name.py +0 -0
  117. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0094_add_hint_lesson_subtitle_to_levels.py +0 -0
  118. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0095_level_commands.py +0 -0
  119. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0096_alter_level_commands.py +0 -0
  120. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0097_add_python_den_levels.py +0 -0
  121. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0098_add_episode_link_fields.py +0 -0
  122. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0099_python_episodes_links.py +0 -0
  123. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0100_reorder_python_levels.py +0 -0
  124. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0101_rename_episodes.py +0 -0
  125. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0102_reoder_episodes_13_14.py +0 -0
  126. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0103_level_1015_solution.py +0 -0
  127. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0104_remove_level_direct_drive.py +0 -0
  128. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0105_delete_invalid_attempts.py +0 -0
  129. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0106_fields_to_snake_case.py +0 -0
  130. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0107_rename_worksheet_link_episode_student_worksheet_link.py +0 -0
  131. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0108_episode_indy_worksheet_link.py +0 -0
  132. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0109_create_episodes_23_and_24.py +0 -0
  133. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0110_remove_episode_indy_worksheet_link_and_more.py +0 -0
  134. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0111_create_worksheets.py +0 -0
  135. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0112_worksheet_locked_classes.py +0 -0
  136. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0113_level_needs_approval.py +0 -0
  137. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0114_default_and_non_student_levels_no_approval.py +0 -0
  138. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0115_level_level__default_does_not_need_approval.py +0 -0
  139. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0116_update_worksheet_video_links.py +0 -0
  140. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/0117_update_solutions_to_if_else.py +0 -0
  141. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/migrations/__init__.py +0 -0
  142. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/models.py +0 -0
  143. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/permissions.py +0 -0
  144. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/pipeline_compilers/__init__.py +0 -0
  145. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/pipeline_compilers/libsass_compiler.py +0 -0
  146. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/random_road.py +0 -0
  147. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/serializers.py +0 -0
  148. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/django_reverse_js/js/reverse.js +0 -0
  149. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/LilitaOne-Regular.ttf +0 -0
  150. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/backgrounds.css +0 -0
  151. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/dataTables.custom.css +0 -0
  152. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/dataTables.fixedColumns.css +0 -0
  153. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/dataTables.jqueryui.css +0 -0
  154. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/dropdown.css +0 -0
  155. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/game.css +0 -0
  156. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/game_screen.css +0 -0
  157. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/input.css +0 -0
  158. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/jquery.dataTables.css +0 -0
  159. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/level_editor.css +0 -0
  160. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/level_moderation.css +0 -0
  161. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/level_selection.css +0 -0
  162. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/level_share.css +0 -0
  163. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/logged_students.css +0 -0
  164. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/pqselect.min.css +0 -0
  165. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/pqselect.multiselect.css +0 -0
  166. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/scoreboard.css +0 -0
  167. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/settings.css +0 -0
  168. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/skulpt/codemirror.css +0 -0
  169. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/skulpt/eclipse.css +0 -0
  170. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/css/skulpt/solarized.css +0 -0
  171. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Clarice.svg +0 -0
  172. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Clarice_Jersey.svg +0 -0
  173. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Clarice_Jersey_uncropped.svg +0 -0
  174. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Clarice_uncropped.svg +0 -0
  175. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Clarice_v1.svg +0 -0
  176. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Clarice_v2.svg +0 -0
  177. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/OcadoCFC.svg +0 -0
  178. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/OcadoCFC_no_road.svg +0 -0
  179. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Python_Den_hero_student.png +0 -0
  180. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/Python_levels_page.svg +0 -0
  181. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/RR-title.png +0 -0
  182. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/RapidRouter_logo_type_only.svg +0 -0
  183. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/RapidRouter_logo_w_BG.svg +0 -0
  184. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/RapidRouter_logo_wo_BG.svg +0 -0
  185. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/btn_zoom_in.svg +0 -0
  186. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/btn_zoom_out.svg +0 -0
  187. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/deliver.svg +0 -0
  188. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/forward.svg +0 -0
  189. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/left.svg +0 -0
  190. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/right.svg +0 -0
  191. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/turn_around.svg +0 -0
  192. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/actions/wait.svg +0 -0
  193. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/asc.gif +0 -0
  194. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/avatars/default-avatar.jpeg +0 -0
  195. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/bg.gif +0 -0
  196. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/btnMute.svg +0 -0
  197. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/btnReset.svg +0 -0
  198. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Dee.svg +0 -0
  199. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Electric_van.svg +0 -0
  200. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Kirsty.svg +0 -0
  201. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Nigel.svg +0 -0
  202. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Phil.svg +0 -0
  203. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Van.svg +0 -0
  204. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/front_view/Wes.svg +0 -0
  205. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Dee.svg +0 -0
  206. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Electric_van.svg +0 -0
  207. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Kirsty.svg +0 -0
  208. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Nigel.svg +0 -0
  209. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Phil.svg +0 -0
  210. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Sleigh.svg +0 -0
  211. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Van.svg +0 -0
  212. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Van_wreckage.svg +0 -0
  213. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/characters/top_view/Wes.svg +0 -0
  214. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_5050_dots.svg +0 -0
  215. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_5050_transparent.svg +0 -0
  216. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_copper.svg +0 -0
  217. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_empty_dots.svg +0 -0
  218. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_empty_transparent.svg +0 -0
  219. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_gold.svg +0 -0
  220. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/coins/coin_silver.svg +0 -0
  221. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/dataTables/Sorting icons.psd +0 -0
  222. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/dataTables/sort_asc.png +0 -0
  223. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/dataTables/sort_asc_disabled.png +0 -0
  224. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/dataTables/sort_both.png +0 -0
  225. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/dataTables/sort_desc.png +0 -0
  226. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/dataTables/sort_desc_disabled.png +0 -0
  227. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/bush.svg +0 -0
  228. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/hospital.svg +0 -0
  229. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/house.svg +0 -0
  230. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/pavementTile.png +0 -0
  231. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/school.svg +0 -0
  232. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/shop.svg +0 -0
  233. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/city/solar_panel.svg +0 -0
  234. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/bush.svg +0 -0
  235. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/cfc.svg +0 -0
  236. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/cfc_black.svg +0 -0
  237. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/crops.svg +0 -0
  238. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/house1.svg +0 -0
  239. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/house2.svg +0 -0
  240. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/solar_panel.svg +0 -0
  241. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/tile1.svg +0 -0
  242. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/tree1.svg +0 -0
  243. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/farm/tree2.svg +0 -0
  244. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/bush.svg +0 -0
  245. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/cfc.svg +0 -0
  246. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/house.svg +0 -0
  247. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/pond.svg +0 -0
  248. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/solar_panel.svg +0 -0
  249. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/tile1.svg +0 -0
  250. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/tree1.svg +0 -0
  251. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/grass/tree2.svg +0 -0
  252. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/barn.svg +0 -0
  253. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/bush.svg +0 -0
  254. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/cfc.svg +0 -0
  255. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/crops.svg +0 -0
  256. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/hospital.svg +0 -0
  257. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/house.svg +0 -0
  258. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/house1.svg +0 -0
  259. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/house2.svg +0 -0
  260. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/pond.svg +0 -0
  261. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/school.svg +0 -0
  262. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/shop.svg +0 -0
  263. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/solar_panel.svg +0 -0
  264. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/tile1.svg +0 -0
  265. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/tile2.svg +0 -0
  266. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/tree1.svg +0 -0
  267. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/decor/snow/tree2.svg +0 -0
  268. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/desc.gif +0 -0
  269. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/electric_van.svg +0 -0
  270. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/empty.svg +0 -0
  271. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/apple.svg +0 -0
  272. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/apple1.svg +0 -0
  273. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/apple2.svg +0 -0
  274. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/banana.svg +0 -0
  275. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/banana1.svg +0 -0
  276. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/banana2.svg +0 -0
  277. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fruit/orange.svg +0 -0
  278. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fuelGauge.svg +0 -0
  279. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/fuelGaugePointer.svg +0 -0
  280. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/add.svg +0 -0
  281. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/add_house.svg +0 -0
  282. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/add_road.svg +0 -0
  283. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/big_code_mode.svg +0 -0
  284. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/blockly.svg +0 -0
  285. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/character.svg +0 -0
  286. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/clear.svg +0 -0
  287. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/day.svg +0 -0
  288. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/decor.svg +0 -0
  289. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/delete_decor.svg +0 -0
  290. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/delete_house.svg +0 -0
  291. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/delete_road.svg +0 -0
  292. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/description.svg +0 -0
  293. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/fast.svg +0 -0
  294. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/help.svg +0 -0
  295. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/hide.svg +0 -0
  296. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/hide_button.svg +0 -0
  297. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/hint.svg +0 -0
  298. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/if_else.svg +0 -0
  299. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/load.svg +0 -0
  300. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/map.svg +0 -0
  301. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/muted.svg +0 -0
  302. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/night.svg +0 -0
  303. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/origin.svg +0 -0
  304. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/pause.svg +0 -0
  305. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/play.svg +0 -0
  306. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/print.svg +0 -0
  307. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/python.svg +0 -0
  308. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/quit.svg +0 -0
  309. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/random.svg +0 -0
  310. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/save.svg +0 -0
  311. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/share.svg +0 -0
  312. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/show.svg +0 -0
  313. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/slow.svg +0 -0
  314. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/solve.svg +0 -0
  315. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/step.svg +0 -0
  316. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/stop.svg +0 -0
  317. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/icons/unmuted.svg +0 -0
  318. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/if_else_example.png +0 -0
  319. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/key.svg +0 -0
  320. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/ocadoVan_big.svg +0 -0
  321. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/package.svg +0 -0
  322. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/pigeon.svg +0 -0
  323. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/python_den_header.svg +0 -0
  324. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/sp_cow.svg +0 -0
  325. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel1.svg +0 -0
  326. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel1_fuel_pointer.svg +0 -0
  327. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel1_meter.svg +0 -0
  328. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel1_speed_pointer.svg +0 -0
  329. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel2.svg +0 -0
  330. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel2_fuel_pointer.svg +0 -0
  331. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel2_meter.svg +0 -0
  332. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel2_speed_pointer.svg +0 -0
  333. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/speedoFuel_v2.svg +0 -0
  334. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/trafficLight_green.svg +0 -0
  335. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/trafficLight_red.svg +0 -0
  336. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/trashcan.svg +0 -0
  337. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/trashcan_lid_closed.svg +0 -0
  338. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/trashcan_lid_open.svg +0 -0
  339. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/van.svg +0 -0
  340. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/van_small.svg +0 -0
  341. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/van_small2.svg +0 -0
  342. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/image/zebraCrossing.svg +0 -0
  343. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/animation.js +0 -0
  344. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/blockly_compressed.js +0 -0
  345. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/blockly_uncompressed.js +0 -0
  346. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/blocks_compressed.js +0 -0
  347. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/javascript_compressed.js +0 -0
  348. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/1x1.gif +0 -0
  349. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/click.mp3 +0 -0
  350. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/click.ogg +0 -0
  351. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/click.wav +0 -0
  352. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/delete.mp3 +0 -0
  353. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/delete.ogg +0 -0
  354. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/delete.wav +0 -0
  355. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/disconnect.mp3 +0 -0
  356. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/disconnect.ogg +0 -0
  357. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/disconnect.wav +0 -0
  358. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/handclosed.cur +0 -0
  359. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/handdelete.cur +0 -0
  360. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/handopen.cur +0 -0
  361. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/quote0.png +0 -0
  362. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/quote1.png +0 -0
  363. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/sprites.png +0 -0
  364. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/media/sprites.svg +0 -0
  365. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ab.js +0 -0
  366. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ar.js +0 -0
  367. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/az.js +0 -0
  368. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ba.js +0 -0
  369. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/bcc.js +0 -0
  370. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/be-tarask.js +0 -0
  371. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/be.js +0 -0
  372. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/bg.js +0 -0
  373. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/bn.js +0 -0
  374. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/br.js +0 -0
  375. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ca.js +0 -0
  376. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/cs.js +0 -0
  377. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/da.js +0 -0
  378. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/de.js +0 -0
  379. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/diq.js +0 -0
  380. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/dty.js +0 -0
  381. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/el.js +0 -0
  382. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/en-gb.js +0 -0
  383. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/en.js +0 -0
  384. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/eo.js +0 -0
  385. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/es.js +0 -0
  386. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/et.js +0 -0
  387. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/eu.js +0 -0
  388. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/fa.js +0 -0
  389. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/fi.js +0 -0
  390. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/fr.js +0 -0
  391. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/gl.js +0 -0
  392. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/gor.js +0 -0
  393. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ha.js +0 -0
  394. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/he.js +0 -0
  395. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/hi.js +0 -0
  396. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/hrx.js +0 -0
  397. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/hu.js +0 -0
  398. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/hy.js +0 -0
  399. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ia.js +0 -0
  400. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/id.js +0 -0
  401. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ig.js +0 -0
  402. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/is.js +0 -0
  403. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/it.js +0 -0
  404. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ja.js +0 -0
  405. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/kab.js +0 -0
  406. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ko.js +0 -0
  407. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/lb.js +0 -0
  408. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/lki.js +0 -0
  409. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/lo.js +0 -0
  410. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/lrc.js +0 -0
  411. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/lt.js +0 -0
  412. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/lv.js +0 -0
  413. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/mk.js +0 -0
  414. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/mnw.js +0 -0
  415. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ms.js +0 -0
  416. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/nb.js +0 -0
  417. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/nl.js +0 -0
  418. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/oc.js +0 -0
  419. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/pl.js +0 -0
  420. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/pms.js +0 -0
  421. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/pt-br.js +0 -0
  422. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/pt.js +0 -0
  423. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ro.js +0 -0
  424. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ru.js +0 -0
  425. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sc.js +0 -0
  426. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sd.js +0 -0
  427. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/shn.js +0 -0
  428. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sk.js +0 -0
  429. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/skr-arab.js +0 -0
  430. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sl.js +0 -0
  431. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sq.js +0 -0
  432. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sr-latn.js +0 -0
  433. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sr.js +0 -0
  434. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/sv.js +0 -0
  435. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ta.js +0 -0
  436. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/tcy.js +0 -0
  437. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/te.js +0 -0
  438. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/th.js +0 -0
  439. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/tl.js +0 -0
  440. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/tlh.js +0 -0
  441. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/tr.js +0 -0
  442. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ug-arab.js +0 -0
  443. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/uk.js +0 -0
  444. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/ur.js +0 -0
  445. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/vi.js +0 -0
  446. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/xmf.js +0 -0
  447. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/yo.js +0 -0
  448. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/zh-hans.js +0 -0
  449. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/js/zh-hant.js +0 -0
  450. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ab.json +0 -0
  451. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ar.json +0 -0
  452. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/az.json +0 -0
  453. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ba.json +0 -0
  454. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/bcc.json +0 -0
  455. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/be-tarask.json +0 -0
  456. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/be.json +0 -0
  457. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/bg.json +0 -0
  458. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/bn.json +0 -0
  459. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/br.json +0 -0
  460. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ca.json +0 -0
  461. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/constants.json +0 -0
  462. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/cs.json +0 -0
  463. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/da.json +0 -0
  464. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/de.json +0 -0
  465. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/diq.json +0 -0
  466. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/dty.json +0 -0
  467. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/el.json +0 -0
  468. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/en-gb.json +0 -0
  469. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/en.json +0 -0
  470. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/eo.json +0 -0
  471. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/es.json +0 -0
  472. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/et.json +0 -0
  473. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/eu.json +0 -0
  474. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/fa.json +0 -0
  475. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/fi.json +0 -0
  476. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/fr.json +0 -0
  477. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/gl.json +0 -0
  478. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/gor.json +0 -0
  479. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ha.json +0 -0
  480. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/he.json +0 -0
  481. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/hi.json +0 -0
  482. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/hrx.json +0 -0
  483. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/hu.json +0 -0
  484. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/hy.json +0 -0
  485. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ia.json +0 -0
  486. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/id.json +0 -0
  487. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ig.json +0 -0
  488. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/is.json +0 -0
  489. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/it.json +0 -0
  490. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ja.json +0 -0
  491. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/kab.json +0 -0
  492. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ko.json +0 -0
  493. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/lb.json +0 -0
  494. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/lki.json +0 -0
  495. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/lo.json +0 -0
  496. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/lrc.json +0 -0
  497. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/lt.json +0 -0
  498. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/lv.json +0 -0
  499. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/mk.json +0 -0
  500. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/mnw.json +0 -0
  501. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ms.json +0 -0
  502. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/nb.json +0 -0
  503. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/nl.json +0 -0
  504. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/oc.json +0 -0
  505. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/pl.json +0 -0
  506. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/pms.json +0 -0
  507. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/pt-br.json +0 -0
  508. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/pt.json +0 -0
  509. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/qqq.json +0 -0
  510. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ro.json +0 -0
  511. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ru.json +0 -0
  512. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sc.json +0 -0
  513. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sd.json +0 -0
  514. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/shn.json +0 -0
  515. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sk.json +0 -0
  516. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/skr-arab.json +0 -0
  517. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sl.json +0 -0
  518. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sq.json +0 -0
  519. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sr-latn.json +0 -0
  520. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sr.json +0 -0
  521. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/sv.json +0 -0
  522. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/synonyms.json +0 -0
  523. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ta.json +0 -0
  524. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/tcy.json +0 -0
  525. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/te.json +0 -0
  526. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/th.json +0 -0
  527. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/tl.json +0 -0
  528. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/tlh.json +0 -0
  529. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/tr.json +0 -0
  530. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ug-arab.json +0 -0
  531. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/uk.json +0 -0
  532. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/ur.json +0 -0
  533. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/vi.json +0 -0
  534. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/xmf.json +0 -0
  535. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/yo.json +0 -0
  536. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/zh-hans.json +0 -0
  537. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/json/zh-hant.json +0 -0
  538. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/msg/messages.js +0 -0
  539. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/python_compressed.js +0 -0
  540. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blockly/version.txt +0 -0
  541. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blocklyCompiler.js +0 -0
  542. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blocklyControl.js +0 -0
  543. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blocklyCustomBlocks.js +0 -0
  544. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blocklyCustomisations.js +0 -0
  545. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/blocklyMessages.js +0 -0
  546. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/button.js +0 -0
  547. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/character.js +0 -0
  548. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/coordinate.js +0 -0
  549. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/cow.js +0 -0
  550. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/dataTables.fixedColumns.js +0 -0
  551. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/destination.js +0 -0
  552. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/drawing.js +0 -0
  553. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/drawingConstants.js +0 -0
  554. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/event.js +0 -0
  555. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.abide.js +0 -0
  556. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.accordion.js +0 -0
  557. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.alert.js +0 -0
  558. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.clearing.js +0 -0
  559. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.dropdown.js +0 -0
  560. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.equalizer.js +0 -0
  561. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.interchange.js +0 -0
  562. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.joyride.js +0 -0
  563. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.js +0 -0
  564. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.magellan.js +0 -0
  565. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.offcanvas.js +0 -0
  566. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.orbit.js +0 -0
  567. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.reveal.js +0 -0
  568. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.slider.js +0 -0
  569. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.tab.js +0 -0
  570. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.tooltip.js +0 -0
  571. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation/foundation.topbar.js +0 -0
  572. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/foundation.min.js +0 -0
  573. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/vendor/fastclick.js +0 -0
  574. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/vendor/jquery.js +0 -0
  575. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/vendor/js.cookie.min.js +0 -0
  576. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/vendor/modernizr.js +0 -0
  577. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/foundation/vendor/placeholder.js +0 -0
  578. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/fpsmeter.js +0 -0
  579. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/game.js +0 -0
  580. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/handlebars.runtime-v4.7.7.js +0 -0
  581. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/howler.js +0 -0
  582. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/jquery.dataTables.min.js +0 -0
  583. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/jquery.js +0 -0
  584. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/jquery.outerhtml.js +0 -0
  585. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/jquery.touchy.min.js +0 -0
  586. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/level_editor/level_save_state.js +0 -0
  587. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/level_editor/owned_levels.js +0 -0
  588. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/level_editor.js +0 -0
  589. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/level_moderation.js +0 -0
  590. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/level_selection.js +0 -0
  591. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/loadLanguages.js +0 -0
  592. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/map.js +0 -0
  593. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/messages.js +0 -0
  594. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/mobile-detect.min.js +0 -0
  595. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/model.js +0 -0
  596. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/node.js +0 -0
  597. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/pathFinder.js +0 -0
  598. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/program.js +0 -0
  599. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/pythonControl.js +0 -0
  600. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/raphael.js +0 -0
  601. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/saving.js +0 -0
  602. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/scoreboard.js +0 -0
  603. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/scoreboardSharedLevels.js +0 -0
  604. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/sharing.js +0 -0
  605. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/skulpt/codemirror.js +0 -0
  606. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/skulpt/python.js +0 -0
  607. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/skulpt/skulpt-stdlib.js +0 -0
  608. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/skulpt/skulpt.min.js +0 -0
  609. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/sound.js +0 -0
  610. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/svginnerhtml.js +0 -0
  611. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/tab.js +0 -0
  612. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/templates.js +0 -0
  613. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/trafficLight.js +0 -0
  614. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/utils.js +0 -0
  615. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/js/van.js +0 -0
  616. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/Clarice.svg +0 -0
  617. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/Clarice_Jersey.svg +0 -0
  618. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/Clarice_v1.svg +0 -0
  619. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/Clarice_v2.svg +0 -0
  620. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Dee.svg +0 -0
  621. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Electric_van.svg +0 -0
  622. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Kirsty.svg +0 -0
  623. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Nigel.svg +0 -0
  624. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Phil.svg +0 -0
  625. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Sleigh.svg +0 -0
  626. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Van.svg +0 -0
  627. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Van2.svg +0 -0
  628. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Van_wreckage.svg +0 -0
  629. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/VeilOfNight.svg +0 -0
  630. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/characters/top_view/Wes.svg +0 -0
  631. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/bush.svg +0 -0
  632. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/hospital.svg +0 -0
  633. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/house.svg +0 -0
  634. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/pavementTile.png +0 -0
  635. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/school.svg +0 -0
  636. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/shop.svg +0 -0
  637. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/city/solar_panel.svg +0 -0
  638. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/bush.svg +0 -0
  639. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/cfc.svg +0 -0
  640. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/cfc_black.svg +0 -0
  641. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/crops.svg +0 -0
  642. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/house1.svg +0 -0
  643. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/house2.svg +0 -0
  644. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/solar_panel.svg +0 -0
  645. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/tile1.svg +0 -0
  646. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/tree1.svg +0 -0
  647. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/farm/tree2.svg +0 -0
  648. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/bush.svg +0 -0
  649. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/cfc.svg +0 -0
  650. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/house.svg +0 -0
  651. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/pond.svg +0 -0
  652. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/solar_panel.svg +0 -0
  653. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/tile1.svg +0 -0
  654. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/tree1.svg +0 -0
  655. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/grass/tree2.svg +0 -0
  656. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/barn.svg +0 -0
  657. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/bush.svg +0 -0
  658. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/cfc.svg +0 -0
  659. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/crops.svg +0 -0
  660. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/hospital.svg +0 -0
  661. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/house.svg +0 -0
  662. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/house1.svg +0 -0
  663. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/house2.svg +0 -0
  664. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/pond.svg +0 -0
  665. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/school.svg +0 -0
  666. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/shop.svg +0 -0
  667. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/solar_panel.svg +0 -0
  668. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/tile1.svg +0 -0
  669. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/tile2.svg +0 -0
  670. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/tree1.svg +0 -0
  671. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/decor/snow/tree2.svg +0 -0
  672. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/fire.svg +0 -0
  673. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/pigeon.svg +0 -0
  674. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/path/crossroads.svg +0 -0
  675. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/path/dead_end.svg +0 -0
  676. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/path/straight.svg +0 -0
  677. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/path/t_junction.svg +0 -0
  678. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/path/turn.svg +0 -0
  679. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/road/crossroads.svg +0 -0
  680. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/road/dead_end.svg +0 -0
  681. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/road/straight.svg +0 -0
  682. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/road/t_junction.svg +0 -0
  683. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/road_tiles/road/turn.svg +0 -0
  684. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/sleigh_wreckage.svg +0 -0
  685. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/smoke.svg +0 -0
  686. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/sp_cow.svg +0 -0
  687. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/trafficLight_green.svg +0 -0
  688. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/trafficLight_red.svg +0 -0
  689. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/raphael_image/van_wreckage.svg +0 -0
  690. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/_foundation_overrides.scss +0 -0
  691. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/_mixins.scss +0 -0
  692. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/_styles.scss +0 -0
  693. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/_variables.scss +0 -0
  694. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/_functions.scss +0 -0
  695. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/_settings.scss +0 -0
  696. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_accordion.scss +0 -0
  697. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_alert-boxes.scss +0 -0
  698. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_block-grid.scss +0 -0
  699. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_breadcrumbs.scss +0 -0
  700. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_button-groups.scss +0 -0
  701. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_buttons.scss +0 -0
  702. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_clearing.scss +0 -0
  703. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_dropdown-buttons.scss +0 -0
  704. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_dropdown.scss +0 -0
  705. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_flex-video.scss +0 -0
  706. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_forms.scss +0 -0
  707. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_global.scss +0 -0
  708. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_grid.scss +0 -0
  709. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_icon-bar.scss +0 -0
  710. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_inline-lists.scss +0 -0
  711. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_joyride.scss +0 -0
  712. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_keystrokes.scss +0 -0
  713. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_labels.scss +0 -0
  714. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_magellan.scss +0 -0
  715. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_offcanvas.scss +0 -0
  716. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_orbit.scss +0 -0
  717. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_pagination.scss +0 -0
  718. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_panels.scss +0 -0
  719. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_pricing-tables.scss +0 -0
  720. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_progress-bars.scss +0 -0
  721. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_range-slider.scss +0 -0
  722. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_reveal.scss +0 -0
  723. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_side-nav.scss +0 -0
  724. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_split-buttons.scss +0 -0
  725. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_sub-nav.scss +0 -0
  726. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_switch.scss +0 -0
  727. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_switches.scss +0 -0
  728. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_tables.scss +0 -0
  729. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_tabs.scss +0 -0
  730. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_thumbs.scss +0 -0
  731. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_toolbar.scss +0 -0
  732. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_tooltips.scss +0 -0
  733. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_top-bar.scss +0 -0
  734. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_type.scss +0 -0
  735. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation/components/_visibility.scss +0 -0
  736. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/foundation.scss +0 -0
  737. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sass/game.scss +0 -0
  738. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/clown_horn.mp3 +0 -0
  739. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/clown_horn.ogg +0 -0
  740. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/cow.mp3 +0 -0
  741. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/cow.ogg +0 -0
  742. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/cow_original.mp3 +0 -0
  743. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/cow_original.ogg +0 -0
  744. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/crash.mp3 +0 -0
  745. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/crash.ogg +0 -0
  746. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/delivery.mp3 +0 -0
  747. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/delivery.ogg +0 -0
  748. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/electric_van_starting.mp3 +0 -0
  749. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/electric_van_starting.ogg +0 -0
  750. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/failure.mp3 +0 -0
  751. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/failure.ogg +0 -0
  752. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/horn.mp3 +0 -0
  753. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/horn.ogg +0 -0
  754. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/moving.mp3 +0 -0
  755. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/moving.ogg +0 -0
  756. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/pigeon.mp3 +0 -0
  757. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/pigeon.ogg +0 -0
  758. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/sleigh_bells.mp3 +0 -0
  759. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/sleigh_bells.ogg +0 -0
  760. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/sleigh_crash.mp3 +0 -0
  761. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/sleigh_crash.ogg +0 -0
  762. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/starting.mp3 +0 -0
  763. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/starting.ogg +0 -0
  764. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/tension.mp3 +0 -0
  765. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/tension.ogg +0 -0
  766. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/win.mp3 +0 -0
  767. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/game/sound/win.ogg +0 -0
  768. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/icons/dee-192x192.png +0 -0
  769. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/icons/dee-384x384.png +0 -0
  770. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/icons/dee-512x512.png +0 -0
  771. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/static/manifest.json +0 -0
  772. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/base.html +0 -0
  773. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/basenonav.html +0 -0
  774. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/crowdin.html +0 -0
  775. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/error.html +0 -0
  776. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/game.html +0 -0
  777. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/level_editor.html +0 -0
  778. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/level_moderation.html +0 -0
  779. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/level_selection.html +0 -0
  780. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/logged_students.html +0 -0
  781. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templates/game/scoreboard.html +0 -0
  782. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templatetags/__init__.py +0 -0
  783. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templatetags/game/__init__.py +0 -0
  784. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/templatetags/game/utils.py +0 -0
  785. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/__init__.py +0 -0
  786. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/migrations/__init__.py +0 -0
  787. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/migrations/test_migration_fix_episodes_order.py +0 -0
  788. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_api.py +0 -0
  789. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_level_editor.py +0 -0
  790. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_level_moderation.py +0 -0
  791. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_level_selection.py +0 -0
  792. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_models.py +0 -0
  793. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_random_road.py +0 -0
  794. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/test_scoreboard.py +0 -0
  795. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/__init__.py +0 -0
  796. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/attempt.py +0 -0
  797. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/episode.py +0 -0
  798. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/level.py +0 -0
  799. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/locale.py +0 -0
  800. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/teacher.py +0 -0
  801. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/tests/utils/user.py +0 -0
  802. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/theme.py +0 -0
  803. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/urls.py +0 -0
  804. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/__init__.py +0 -0
  805. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/api.py +0 -0
  806. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/helper.py +0 -0
  807. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/language_code_conversions.py +0 -0
  808. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/level.py +0 -0
  809. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/level_editor.py +0 -0
  810. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/level_moderation.py +0 -0
  811. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/level_selection.py +0 -0
  812. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/level_solutions.py +0 -0
  813. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/scoreboard.py +0 -0
  814. {rapid_router-7.5.23 → rapid_router-7.6.0}/game/views/scoreboard_csv.py +0 -0
  815. {rapid_router-7.5.23 → rapid_router-7.6.0}/pyproject.toml +0 -0
  816. {rapid_router-7.5.23 → rapid_router-7.6.0}/rapid_router.egg-info/dependency_links.txt +0 -0
  817. {rapid_router-7.5.23 → rapid_router-7.6.0}/rapid_router.egg-info/not-zip-safe +0 -0
  818. {rapid_router-7.5.23 → rapid_router-7.6.0}/rapid_router.egg-info/top_level.txt +0 -0
  819. {rapid_router-7.5.23 → rapid_router-7.6.0}/setup.cfg +0 -0
  820. {rapid_router-7.5.23 → rapid_router-7.6.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rapid-router
3
- Version: 7.5.23
3
+ Version: 7.6.0
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Framework :: Django
@@ -9,7 +9,7 @@ Requires-Dist: asgiref==3.9.1; python_version >= "3.9"
9
9
  Requires-Dist: asttokens==3.0.0; python_version >= "3.8"
10
10
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7"
11
11
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy"
12
- Requires-Dist: cfl-common==8.8.3
12
+ Requires-Dist: cfl-common==8.9.1
13
13
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7"
14
14
  Requires-Dist: cryptography==44.0.1; python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1"
15
15
  Requires-Dist: decorator==5.2.1; python_version >= "3.8"
@@ -72,19 +72,20 @@ Requires-Dist: botocore==1.36.26; python_version >= "3.8" and extra == "dev"
72
72
  Requires-Dist: celery[sqs]==5.4.0; python_version >= "3.8" and extra == "dev"
73
73
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7" and extra == "dev"
74
74
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy" and extra == "dev"
75
- Requires-Dist: cfl-common==8.8.3; extra == "dev"
75
+ Requires-Dist: cfl-common==8.9.1; extra == "dev"
76
76
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7" and extra == "dev"
77
77
  Requires-Dist: click==8.2.1; python_version >= "3.10" and extra == "dev"
78
78
  Requires-Dist: click-didyoumean==0.3.1; python_full_version >= "3.6.2" and extra == "dev"
79
79
  Requires-Dist: click-plugins==1.1.1.2; extra == "dev"
80
80
  Requires-Dist: click-repl==0.3.0; python_version >= "3.6" and extra == "dev"
81
- Requires-Dist: codeforlife-portal==8.8.3; extra == "dev"
81
+ Requires-Dist: codeforlife-portal==8.9.1; extra == "dev"
82
82
  Requires-Dist: cryptography==44.0.1; (python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1") and extra == "dev"
83
83
  Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
84
84
  Requires-Dist: django==5.1.10; python_version >= "3.10" and extra == "dev"
85
85
  Requires-Dist: django-classy-tags==4.1.0; python_version >= "3.8" and extra == "dev"
86
86
  Requires-Dist: django-countries==7.6.1; extra == "dev"
87
87
  Requires-Dist: django-csp==3.8; extra == "dev"
88
+ Requires-Dist: django-extensions==4.1; python_version >= "3.9" and extra == "dev"
88
89
  Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
89
90
  Requires-Dist: django-import-export==4.2.0; python_version >= "3.9" and extra == "dev"
90
91
  Requires-Dist: django-otp==1.6.1; python_version >= "3.7" and extra == "dev"
@@ -109,6 +110,7 @@ Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
109
110
  Requires-Dist: jmespath==1.0.1; python_version >= "3.7" and extra == "dev"
110
111
  Requires-Dist: kombu[sqs]==5.5.4; python_version >= "3.8" and extra == "dev"
111
112
  Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
113
+ Requires-Dist: markupsafe==3.0.2; python_version >= "3.9" and extra == "dev"
112
114
  Requires-Dist: more-itertools==8.7.0; python_version >= "3.5" and extra == "dev"
113
115
  Requires-Dist: mypy-extensions==1.1.0; python_version >= "3.8" and extra == "dev"
114
116
  Requires-Dist: numpy==2.3.2; python_version >= "3.11" and extra == "dev"
@@ -127,6 +129,7 @@ Requires-Dist: pycparser==2.22; python_version >= "3.8" and extra == "dev"
127
129
  Requires-Dist: pycurl==7.45.6; python_version >= "3.5" and extra == "dev"
128
130
  Requires-Dist: pygments==2.19.2; python_version >= "3.8" and extra == "dev"
129
131
  Requires-Dist: pyjwt==2.6.0; python_version >= "3.7" and extra == "dev"
132
+ Requires-Dist: pyopenssl==25.1.0; python_version >= "3.7" and extra == "dev"
130
133
  Requires-Dist: pypng==0.20220715.0; extra == "dev"
131
134
  Requires-Dist: pysocks==1.7.1; extra == "dev"
132
135
  Requires-Dist: pytest==8.4.1; python_version >= "3.9" and extra == "dev"
@@ -159,6 +162,7 @@ Requires-Dist: uvicorn-worker==0.2.0; python_version >= "3.8" and extra == "dev"
159
162
  Requires-Dist: vine==5.1.0; python_version >= "3.6" and extra == "dev"
160
163
  Requires-Dist: wcwidth==0.2.13; extra == "dev"
161
164
  Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
165
+ Requires-Dist: werkzeug==3.1.3; python_version >= "3.9" and extra == "dev"
162
166
  Requires-Dist: wheel==0.45.1; python_version >= "3.8" and extra == "dev"
163
167
  Requires-Dist: whitenoise==6.9.0; python_version >= "3.9" and extra == "dev"
164
168
  Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
@@ -70,6 +70,7 @@ INSTALLED_APPS = (
70
70
  "django.contrib.sessions",
71
71
  "django.contrib.messages",
72
72
  "django.contrib.staticfiles",
73
+ "django_extensions",
73
74
  "django_reverse_js",
74
75
  "django_otp",
75
76
  "django_otp.plugins.otp_static",
@@ -0,0 +1 @@
1
+ __version__ = "7.6.0"
@@ -80,6 +80,19 @@ def no_data_to_show_level_moderation():
80
80
  )
81
81
 
82
82
 
83
+ """ Strings used on the Python Den worksheet page. """
84
+
85
+
86
+ def no_permission_python_den_worksheet_title():
87
+ return "No permission"
88
+
89
+
90
+ def no_permission_python_den_worksheet_page():
91
+ return (
92
+ "This content is only available to logged in users. Please log in to access this page."
93
+ )
94
+
95
+
83
96
  """ String messages used as level tips in the game view. """
84
97
 
85
98
 
@@ -2566,6 +2579,11 @@ def hint_level109():
2566
2579
 
2567
2580
  # PYTHON DEN
2568
2581
 
2582
+ # Worksheets starter code
2583
+
2584
+ def worksheet_starter_code():
2585
+ return "# Write your code below"
2586
+
2569
2587
  # Episode 12, Levels 110 - 122
2570
2588
  (
2571
2589
  title_level1001,
@@ -3,6 +3,7 @@ from django.urls import re_path
3
3
  from game.views.level import play_default_python_level, start_python_episode
4
4
  from game.views.level_selection import python_levels
5
5
  from game.views.scoreboard import python_scoreboard
6
+ from game.views.worksheet import worksheet
6
7
 
7
8
  urlpatterns = [
8
9
  re_path(r"^$", python_levels, name="python_levels"),
@@ -16,5 +17,10 @@ urlpatterns = [
16
17
  start_python_episode,
17
18
  name="start_python_episode",
18
19
  ),
20
+ re_path(
21
+ r"^worksheet/(?P<worksheetId>[0-9]+)/$",
22
+ worksheet,
23
+ name="worksheet",
24
+ ),
19
25
  re_path(r"^scoreboard/$", python_scoreboard, name="python_scoreboard"),
20
26
  ]
@@ -0,0 +1,47 @@
1
+ editor-wc {
2
+ display: block;
3
+ width: 66%;
4
+ }
5
+
6
+ video,
7
+ iframe {
8
+ border: 1px solid black;
9
+ border-radius: 5px;
10
+ }
11
+
12
+ .tab-pane video,
13
+ .tab-pane iframe {
14
+ border-radius: 0 0 5px 5px;
15
+ }
16
+
17
+ .nav-tabs {
18
+ border-bottom: 0;
19
+ }
20
+
21
+ .nav-tabs > li > a {
22
+ text-decoration: none;
23
+ }
24
+
25
+ .nav-tabs > li > a,
26
+ .nav-tabs > li > a:hover,
27
+ .nav-tabs > li > a:focus {
28
+ border: 1px solid grey;
29
+ border-bottom-color: transparent;
30
+ font-weight: normal;
31
+ }
32
+
33
+ .nav-tabs > li.active > a,
34
+ .nav-tabs > li.active > a:hover,
35
+ .nav-tabs > li.active > a:focus {
36
+ border: 1px solid black;
37
+ border-bottom-color: transparent;
38
+ font-weight: bold;
39
+ text-decoration: none;
40
+ }
41
+
42
+ @media (max-width: 1000px) {
43
+ editor-wc {
44
+ height: 600px;
45
+ width: 100%;
46
+ }
47
+ }
@@ -0,0 +1,23 @@
1
+ $(document).ready(function () {
2
+ let shadowRoot = $("editor-wc")[0].shadowRoot;
3
+
4
+ // Set editor height and margin
5
+ $(shadowRoot).find("#root").css("height", "100%");
6
+ $(shadowRoot).find(".proj-container").css("margin", "0 10px 0 0");
7
+
8
+ // Fix project bar height
9
+ $(shadowRoot).find(".project-bar").css("block-size", "auto");
10
+
11
+ // Focus on text output tab
12
+ $(shadowRoot).find(".react-tabs__tab-text").click();
13
+
14
+ // Remove visual output and split view tabs
15
+ $(shadowRoot).find("#react-tabs-4").hide();
16
+ $(shadowRoot).find(".output-view-toggle").hide();
17
+
18
+ // Make editor font size not small
19
+ $(shadowRoot).find(".editor").removeClass("editor--small");
20
+
21
+ // Ensure window doesn't scroll to bottom of page
22
+ window.scrollTo(0, 0);
23
+ });
@@ -85,7 +85,7 @@
85
85
  </div>
86
86
  {% else %}
87
87
  <div class="col-sm-7 python-den-level">
88
- <a href="https://editor.raspberrypi.org/en/projects/blank-python-starter" target="_blank">{{episode.name}}{% if episode.worksheets|length > 1 %} pt. {{ worksheet.index }}{% endif %}</a>
88
+ <a href="{% url 'worksheet' worksheet.id %}">{{episode.name}}{% if episode.worksheets|length > 1 %} pt. {{ worksheet.index }}{% endif %}</a>
89
89
  </div>
90
90
  {% if user|is_logged_in_as_teacher %}
91
91
  <div class="col-sm-3 python-den-level">
@@ -169,7 +169,7 @@
169
169
  </div>
170
170
  {% else %}
171
171
  <div class="col-sm-7 python-den-level">
172
- <a href="https://editor.raspberrypi.org/en/projects/blank-python-starter" target="_blank">{{episode.name}}{% if episode.worksheets|length > 1 %} pt. {{ worksheet.index }}{% endif %}</a>
172
+ <a href="{% url 'worksheet' worksheet.id %}">{{episode.name}}{% if episode.worksheets|length > 1 %} pt. {{ worksheet.index }}{% endif %}</a>
173
173
  </div>
174
174
  {% if user|is_logged_in_as_teacher %}
175
175
  <div class="col-sm-3 python-den-level">
@@ -251,7 +251,7 @@
251
251
  </div>
252
252
  {% else %}
253
253
  <div class="col-sm-7 python-den-level">
254
- <a href="https://editor.raspberrypi.org/en/projects/blank-python-starter" target="_blank">{{episode.name}}{% if episode.worksheets|length > 1 %} pt. {{ worksheet.index }}{% endif %}</a>
254
+ <a href="{% url 'worksheet' worksheet.id %}">{{episode.name}}{% if episode.worksheets|length > 1 %} pt. {{ worksheet.index }}{% endif %}</a>
255
255
  </div>
256
256
  {% if user|is_logged_in_as_teacher %}
257
257
  <div class="col-sm-3 python-den-level">
@@ -0,0 +1,101 @@
1
+ {% extends 'game/base.html' %}
2
+
3
+ {% load static %}
4
+ {% load i18n %}
5
+ {% load app_tags %}
6
+
7
+ {% block scripts %}
8
+ {{block.super}}
9
+ <script type="text/javascript" src="https://editor-static.raspberrypi.org/releases/v0.29.1/web-component.js"></script>
10
+ <script type="text/javascript" src="{% static 'game/js/editor.js' %}"></script>
11
+
12
+ <script>
13
+ var EPISODE = "{{ worksheet.episode.name|escapejs }}"
14
+ </script>
15
+ {% endblock %}
16
+
17
+ {% block css %}
18
+ {{block.super}}
19
+ <link href="{% static 'game/css/level_selection.css' %}" rel="stylesheet" type="text/css">
20
+ <link href="{% static 'game/css/editor.css' %}" rel="stylesheet" type="text/css">
21
+ {% endblock %}
22
+
23
+ {% block header %}
24
+ <section class="banner">
25
+ {% if user|is_logged_in_as_student or user|is_independent_student %}
26
+ <img class="banner--python-den--image" title="Python Den logo" alt="Python Den logo" src="{% static 'game/image/Python_Den_hero_student.png' %}">
27
+ {% else %}
28
+ <img class="banner--python-den--image" title="Python Den logo" alt="Python Den logo" src="{% static 'game/image/Python_levels_page.svg' %}">
29
+ {% endif %}
30
+ </section>
31
+ {% endblock header %}
32
+
33
+ {% block content %}
34
+ <div class="container">
35
+ <h4 class="text-center">{{worksheet.episode.name}}</h4>
36
+ <p>You can write your code and see its output using the code editor below.</p>
37
+ <p>Next to it, you can view your worksheet - you can't write anything in it, but you can copy and paste from it.</p>
38
+ </div>
39
+
40
+ <div>
41
+ <div class="d-flex align-items-stretch justify-content-between m-5 flex-lg-row flex-md-column flex-sm-column">
42
+ <div class="d-flex align-items-stretch justify-content-center">
43
+ <a href="{% if user|is_independent_student %} {{worksheet.indy_worksheet_link}} {% else %} {{worksheet.student_worksheet_link}} {% endif %}"
44
+ class="button button--level button--icon hidden-md hidden-lg mb-5" target="_blank">
45
+ Worksheet<span class="iconify" data-icon="mdi:open-in-new"></span></a>
46
+ {% if not user|is_logged_in_as_student %}
47
+ <a href="{{worksheet.video_link}}" class="button button--level button--icon hidden-md hidden-lg mb-5 ml-5" target="_blank">
48
+ Video<span class="iconify" data-icon="mdi:open-in-new"></span></a>
49
+ {% endif %}
50
+ </div>
51
+
52
+ <editor-wc
53
+ code="{{starter_code}}"
54
+ use_editor_styles="true">
55
+ </editor-wc>
56
+
57
+ <div class="hidden-sm hidden-xs">
58
+ <div class="d-flex flex-column">
59
+ {% if user|is_logged_in_as_student %}
60
+ <iframe height="500" width="600" src="{{worksheet.student_worksheet_link}}"></iframe>
61
+ {% else %}
62
+ <ul class="nav nav-tabs" role="tablist">
63
+ <li role="presentation" class="active">
64
+ {% if user|is_independent_student %}
65
+ <a href="#worksheet" aria-controls="worksheet" role="tab" data-toggle="tab">Worksheet</a>
66
+ {% else %}
67
+ <a href="#student-worksheet" aria-controls="student_worksheet" role="tab" data-toggle="tab">Student Worksheet</a>
68
+ {% endif %}
69
+ </li>
70
+ {% if user|is_logged_in_as_teacher %}
71
+ <li role="presentation">
72
+ <a href="#worksheet" aria-controls="worksheet" role="tab" data-toggle="tab">Lesson plan</a>
73
+ </li>
74
+ {% endif %}
75
+ <li role="presentation">
76
+ <a href="#video" aria-controls="video" role="tab" data-toggle="tab">Video</a>
77
+ </li>
78
+ </ul>
79
+
80
+ <div class="tab-content">
81
+ {% if user|is_logged_in_as_teacher %}
82
+ <div role="tabpanel" class="tab-pane active" id="student-worksheet">
83
+ <iframe height="500" width="600" src="{{worksheet.student_worksheet_link}}"></iframe>
84
+ </div>
85
+ {% endif %}
86
+ <div role="tabpanel" class="tab-pane {% if user|is_independent_student %} active {% endif %}" id="worksheet">
87
+ <iframe height="500" width="600" src="{% if user|is_independent_student %} {{worksheet.indy_worksheet_link}} {% else %} {{worksheet.lesson_plan_link}} {% endif %}"></iframe>
88
+ </div>
89
+ <div role="tabpanel" class="tab-pane" id="video">
90
+ <video height="500" width="600"
91
+ src="{{worksheet.video_link}}" type="video/mp4" controls></video>
92
+ </div>
93
+ </div>
94
+ {% endif %}
95
+ </div>
96
+ </div>
97
+
98
+ </div>
99
+ </div>
100
+
101
+ {% endblock content %}
@@ -0,0 +1,85 @@
1
+ from deploy import captcha
2
+ from django.test.client import Client
3
+ from django.test.testcases import TestCase
4
+ from django.urls import reverse
5
+
6
+ from game import messages
7
+ from game.models import Worksheet
8
+
9
+
10
+ class PythonDenWorksheetTestCase(TestCase):
11
+ @classmethod
12
+ def setUpClass(cls):
13
+ cls.orig_captcha_enabled = captcha.CAPTCHA_ENABLED
14
+ captcha.CAPTCHA_ENABLED = False
15
+ super(PythonDenWorksheetTestCase, cls).setUpClass()
16
+
17
+ @classmethod
18
+ def tearDownClass(cls):
19
+ captcha.CAPTCHA_ENABLED = cls.orig_captcha_enabled
20
+ super(PythonDenWorksheetTestCase, cls).tearDownClass()
21
+
22
+ def setUp(self):
23
+ self.client = Client()
24
+
25
+ def login(self, email, password):
26
+ self.client.post(
27
+ reverse("teacher_login"),
28
+ {
29
+ "auth-username": email,
30
+ "auth-password": password,
31
+ "teacher_login_view-current_step": "auth",
32
+ },
33
+ follow=True,
34
+ )
35
+
36
+ def logout(self):
37
+ self.client.post(reverse("logout_view"), follow=True)
38
+
39
+ def student_login(self, name, access_code, password):
40
+ self.client.post(
41
+ reverse("student_login", kwargs={"access_code": access_code}),
42
+ {"username": name, "password": password},
43
+ follow=True,
44
+ )
45
+
46
+ def independent_student_login(self, email, password):
47
+ self.client.login(username=email, password=password)
48
+
49
+ def test_page_permissions(self):
50
+ response = self.client.get(reverse("worksheet", args="1"))
51
+
52
+ assert response.status_code == 200
53
+ assert (
54
+ response.context["title"]
55
+ == messages.no_permission_python_den_worksheet_title()
56
+ )
57
+ assert (
58
+ response.context["message"]
59
+ == messages.no_permission_python_den_worksheet_page()
60
+ )
61
+
62
+ self.login("alberteinstein@codeforlife.com", "Password1")
63
+
64
+ response = self.client.get(reverse("worksheet", args="1"))
65
+
66
+ assert response.status_code == 200
67
+ assert response.context["worksheet"] == Worksheet.objects.get(pk=1)
68
+
69
+ self.logout()
70
+ self.student_login("Leonardo", "AB123", "Password1")
71
+
72
+ response = self.client.get(reverse("worksheet", args="1"))
73
+
74
+ assert response.status_code == 200
75
+ assert response.context["worksheet"] == Worksheet.objects.get(pk=1)
76
+
77
+ self.logout()
78
+ self.independent_student_login("indianajones@codeforlife.com", "Password1")
79
+
80
+ response = self.client.get(reverse("worksheet", args="1"))
81
+
82
+ assert response.status_code == 200
83
+ assert response.context["worksheet"] == Worksheet.objects.get(pk=1)
84
+
85
+ self.logout()
@@ -0,0 +1,25 @@
1
+ from __future__ import absolute_import, division
2
+
3
+ from django.shortcuts import render
4
+
5
+ from game import messages
6
+ from game.models import Worksheet
7
+ from .helper import renderError
8
+
9
+
10
+ def worksheet(request, worksheetId):
11
+ if request.user.is_anonymous:
12
+ return renderError(
13
+ request,
14
+ messages.no_permission_python_den_worksheet_title(),
15
+ messages.no_permission_python_den_worksheet_page(),
16
+ )
17
+
18
+ worksheet = Worksheet.objects.get(pk=worksheetId)
19
+ starter_code = messages.worksheet_starter_code()
20
+
21
+ return render(
22
+ request,
23
+ "game/python_den_worksheet.html",
24
+ context={"worksheet": worksheet, "starter_code": starter_code},
25
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rapid-router
3
- Version: 7.5.23
3
+ Version: 7.6.0
4
4
  Classifier: Programming Language :: Python
5
5
  Classifier: Programming Language :: Python :: 3.12
6
6
  Classifier: Framework :: Django
@@ -9,7 +9,7 @@ Requires-Dist: asgiref==3.9.1; python_version >= "3.9"
9
9
  Requires-Dist: asttokens==3.0.0; python_version >= "3.8"
10
10
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7"
11
11
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy"
12
- Requires-Dist: cfl-common==8.8.3
12
+ Requires-Dist: cfl-common==8.9.1
13
13
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7"
14
14
  Requires-Dist: cryptography==44.0.1; python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1"
15
15
  Requires-Dist: decorator==5.2.1; python_version >= "3.8"
@@ -72,19 +72,20 @@ Requires-Dist: botocore==1.36.26; python_version >= "3.8" and extra == "dev"
72
72
  Requires-Dist: celery[sqs]==5.4.0; python_version >= "3.8" and extra == "dev"
73
73
  Requires-Dist: certifi==2025.8.3; python_version >= "3.7" and extra == "dev"
74
74
  Requires-Dist: cffi==1.17.1; platform_python_implementation != "PyPy" and extra == "dev"
75
- Requires-Dist: cfl-common==8.8.3; extra == "dev"
75
+ Requires-Dist: cfl-common==8.9.1; extra == "dev"
76
76
  Requires-Dist: charset-normalizer==3.4.3; python_version >= "3.7" and extra == "dev"
77
77
  Requires-Dist: click==8.2.1; python_version >= "3.10" and extra == "dev"
78
78
  Requires-Dist: click-didyoumean==0.3.1; python_full_version >= "3.6.2" and extra == "dev"
79
79
  Requires-Dist: click-plugins==1.1.1.2; extra == "dev"
80
80
  Requires-Dist: click-repl==0.3.0; python_version >= "3.6" and extra == "dev"
81
- Requires-Dist: codeforlife-portal==8.8.3; extra == "dev"
81
+ Requires-Dist: codeforlife-portal==8.9.1; extra == "dev"
82
82
  Requires-Dist: cryptography==44.0.1; (python_version >= "3.7" and python_full_version not in "3.9.0, 3.9.1") and extra == "dev"
83
83
  Requires-Dist: diff-match-patch==20241021; python_version >= "3.7" and extra == "dev"
84
84
  Requires-Dist: django==5.1.10; python_version >= "3.10" and extra == "dev"
85
85
  Requires-Dist: django-classy-tags==4.1.0; python_version >= "3.8" and extra == "dev"
86
86
  Requires-Dist: django-countries==7.6.1; extra == "dev"
87
87
  Requires-Dist: django-csp==3.8; extra == "dev"
88
+ Requires-Dist: django-extensions==4.1; python_version >= "3.9" and extra == "dev"
88
89
  Requires-Dist: django-formtools==2.5.1; python_version >= "3.8" and extra == "dev"
89
90
  Requires-Dist: django-import-export==4.2.0; python_version >= "3.9" and extra == "dev"
90
91
  Requires-Dist: django-otp==1.6.1; python_version >= "3.7" and extra == "dev"
@@ -109,6 +110,7 @@ Requires-Dist: isort==6.0.1; python_full_version >= "3.9.0" and extra == "dev"
109
110
  Requires-Dist: jmespath==1.0.1; python_version >= "3.7" and extra == "dev"
110
111
  Requires-Dist: kombu[sqs]==5.5.4; python_version >= "3.8" and extra == "dev"
111
112
  Requires-Dist: libsass==0.23.0; python_version >= "3.8" and extra == "dev"
113
+ Requires-Dist: markupsafe==3.0.2; python_version >= "3.9" and extra == "dev"
112
114
  Requires-Dist: more-itertools==8.7.0; python_version >= "3.5" and extra == "dev"
113
115
  Requires-Dist: mypy-extensions==1.1.0; python_version >= "3.8" and extra == "dev"
114
116
  Requires-Dist: numpy==2.3.2; python_version >= "3.11" and extra == "dev"
@@ -127,6 +129,7 @@ Requires-Dist: pycparser==2.22; python_version >= "3.8" and extra == "dev"
127
129
  Requires-Dist: pycurl==7.45.6; python_version >= "3.5" and extra == "dev"
128
130
  Requires-Dist: pygments==2.19.2; python_version >= "3.8" and extra == "dev"
129
131
  Requires-Dist: pyjwt==2.6.0; python_version >= "3.7" and extra == "dev"
132
+ Requires-Dist: pyopenssl==25.1.0; python_version >= "3.7" and extra == "dev"
130
133
  Requires-Dist: pypng==0.20220715.0; extra == "dev"
131
134
  Requires-Dist: pysocks==1.7.1; extra == "dev"
132
135
  Requires-Dist: pytest==8.4.1; python_version >= "3.9" and extra == "dev"
@@ -159,6 +162,7 @@ Requires-Dist: uvicorn-worker==0.2.0; python_version >= "3.8" and extra == "dev"
159
162
  Requires-Dist: vine==5.1.0; python_version >= "3.6" and extra == "dev"
160
163
  Requires-Dist: wcwidth==0.2.13; extra == "dev"
161
164
  Requires-Dist: websocket-client==1.8.0; python_version >= "3.8" and extra == "dev"
165
+ Requires-Dist: werkzeug==3.1.3; python_version >= "3.9" and extra == "dev"
162
166
  Requires-Dist: wheel==0.45.1; python_version >= "3.8" and extra == "dev"
163
167
  Requires-Dist: whitenoise==6.9.0; python_version >= "3.9" and extra == "dev"
164
168
  Requires-Dist: wsproto==1.2.0; python_full_version >= "3.7.0" and extra == "dev"
@@ -147,6 +147,7 @@ game/static/game/css/dataTables.custom.css
147
147
  game/static/game/css/dataTables.fixedColumns.css
148
148
  game/static/game/css/dataTables.jqueryui.css
149
149
  game/static/game/css/dropdown.css
150
+ game/static/game/css/editor.css
150
151
  game/static/game/css/game.css
151
152
  game/static/game/css/game_screen.css
152
153
  game/static/game/css/input.css
@@ -349,6 +350,7 @@ game/static/game/js/dataTables.fixedColumns.js
349
350
  game/static/game/js/destination.js
350
351
  game/static/game/js/drawing.js
351
352
  game/static/game/js/drawingConstants.js
353
+ game/static/game/js/editor.js
352
354
  game/static/game/js/event.js
353
355
  game/static/game/js/fpsmeter.js
354
356
  game/static/game/js/game.js
@@ -773,6 +775,7 @@ game/templates/game/level_moderation.html
773
775
  game/templates/game/level_selection.html
774
776
  game/templates/game/logged_students.html
775
777
  game/templates/game/python_den_level_selection.html
778
+ game/templates/game/python_den_worksheet.html
776
779
  game/templates/game/scoreboard.html
777
780
  game/templatetags/__init__.py
778
781
  game/templatetags/game/__init__.py
@@ -783,6 +786,7 @@ game/tests/test_level_editor.py
783
786
  game/tests/test_level_moderation.py
784
787
  game/tests/test_level_selection.py
785
788
  game/tests/test_models.py
789
+ game/tests/test_python_den_worksheet.py
786
790
  game/tests/test_random_road.py
787
791
  game/tests/test_scoreboard.py
788
792
  game/tests/migrations/__init__.py
@@ -805,6 +809,7 @@ game/views/level_selection.py
805
809
  game/views/level_solutions.py
806
810
  game/views/scoreboard.py
807
811
  game/views/scoreboard_csv.py
812
+ game/views/worksheet.py
808
813
  rapid_router.egg-info/PKG-INFO
809
814
  rapid_router.egg-info/SOURCES.txt
810
815
  rapid_router.egg-info/dependency_links.txt
@@ -1,4 +1,4 @@
1
- cfl-common==8.8.3
1
+ cfl-common==8.9.1
2
2
  django-countries==7.6.1
3
3
  django-csp==3.8
4
4
  ptyprocess==0.7.0
@@ -80,9 +80,9 @@ urllib3==2.5.0
80
80
  pexpect==4.9.0
81
81
 
82
82
  [dev]
83
- cfl-common==8.8.3
83
+ cfl-common==8.9.1
84
84
  click-plugins==1.1.1.2
85
- codeforlife-portal==8.8.3
85
+ codeforlife-portal==8.9.1
86
86
  django-countries==7.6.1
87
87
  django-csp==3.8
88
88
  django-preventconcurrentlogins==0.8.2
@@ -147,6 +147,7 @@ jmespath==1.0.1
147
147
  outcome==1.3.0.post0
148
148
  psycopg2-binary==2.9.9
149
149
  pyjwt==2.6.0
150
+ pyopenssl==25.1.0
150
151
  pytest-order==1.3.0
151
152
  qrcode==7.4.2
152
153
  sniffio==1.3.1
@@ -193,10 +194,12 @@ wheel==0.45.1
193
194
  [dev:python_version >= "3.9"]
194
195
  asgiref==3.9.1
195
196
  black==25.1.0
197
+ django-extensions==4.1
196
198
  django-import-export==4.2.0
197
199
  django-phonenumber-field==8.1.0
198
200
  django-pipeline==4.0.0
199
201
  djangorestframework==3.16.0
202
+ markupsafe==3.0.2
200
203
  pandas==2.3.1
201
204
  pillow==11.3.0
202
205
  platformdirs==4.3.8
@@ -210,6 +213,7 @@ trio==0.30.0
210
213
  typing-extensions==4.14.1
211
214
  urllib3==2.5.0
212
215
  uvicorn==0.35.0
216
+ werkzeug==3.1.3
213
217
  whitenoise==6.9.0
214
218
  zipp==3.23.0
215
219
 
@@ -1 +0,0 @@
1
- __version__ = "7.5.23"
File without changes
File without changes
File without changes