mumuki-gobstones-runner 2.7.1 → 2.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/assets_server.rb +21 -1
- data/lib/checker.rb +2 -2
- data/lib/game_framework/default.gbs.erb +3 -0
- data/lib/game_framework/default.xml.erb +3 -0
- data/lib/game_framework/extra.gbs.erb +84 -0
- data/lib/game_framework/program.gbs.erb +5 -0
- data/lib/game_framework/program.xml.erb +17 -0
- data/lib/gobstones.rb +1 -0
- data/lib/gobstones/batch.rb +4 -2
- data/lib/gobstones/batch_parser.rb +5 -1
- data/lib/gobstones/compilation_mode.rb +60 -0
- data/lib/gobstones_runner.rb +3 -1
- data/lib/public/full-kindergarten-toolbox.xml +5 -0
- data/lib/public/local-media/bool-false.svg +24 -0
- data/lib/public/local-media/bool-true.svg +17 -0
- data/lib/public/local-media/clean.png +0 -0
- data/lib/public/local-media/color-azul.svg +44 -0
- data/lib/public/local-media/color-negro.svg +44 -0
- data/lib/public/local-media/color-rojo.svg +44 -0
- data/lib/public/local-media/color-verde.svg +44 -0
- data/lib/public/local-media/direccion-este.svg +38 -0
- data/lib/public/local-media/direccion-norte.svg +38 -0
- data/lib/public/local-media/direccion-oeste.svg +38 -0
- data/lib/public/local-media/direccion-sur.svg +38 -0
- data/lib/public/local-media/hand.png +0 -0
- data/lib/public/local-media/main-procedure.png +0 -0
- data/lib/public/local-media/minus.png +0 -0
- data/lib/public/local-media/plus.png +0 -0
- data/lib/public/local-media/program.png +0 -0
- data/lib/public/local-media/repeticion-simple.png +0 -0
- data/lib/public/media/1x1.gif +0 -0
- data/lib/public/media/ShiftDown.png +0 -0
- data/lib/public/media/ShiftLeft.png +0 -0
- data/lib/public/media/ShiftRight.png +0 -0
- data/lib/public/media/ShiftUp.png +0 -0
- data/lib/public/media/click.mp3 +0 -0
- data/lib/public/media/click.ogg +0 -0
- data/lib/public/media/click.wav +0 -0
- data/lib/public/media/delete.mp3 +0 -0
- data/lib/public/media/delete.ogg +0 -0
- data/lib/public/media/delete.wav +0 -0
- data/lib/public/media/disconnect.mp3 +0 -0
- data/lib/public/media/disconnect.ogg +0 -0
- data/lib/public/media/disconnect.wav +0 -0
- data/lib/public/media/quote0.png +0 -0
- data/lib/public/media/quote1.png +0 -0
- data/lib/public/media/sprites.png +0 -0
- data/lib/public/media/sprites.svg +74 -0
- data/lib/public/minimal-kindergarten-toolbox.xml +2 -0
- data/lib/render/boards.html.erb +4 -6
- data/lib/render/editor/editor.css +9 -0
- data/lib/render/editor/{editor.html → editor.html.erb} +143 -18
- data/lib/render/html_renderer.rb +2 -2
- data/lib/render/with_renderer.rb +6 -3
- data/lib/version_hook.rb +1 -1
- metadata +91 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b81904b19b4ecb207d1b52ffec98b8cd617b83f47eb02ec37b4fdd33f7087db4
|
4
|
+
data.tar.gz: ad185dffbfc9c311578b2f4ab5a71f0b42cf4bd2110563ede627e4050d1280d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9f6ac4c47444e5ff26c1151d19a120dd797bf16d394518399157be3eda926b869064b9536ee940c0587168bea17b2e492dad48678460cb9f5558fd5ecc1909f
|
7
|
+
data.tar.gz: 87e3b5464e1daf5027c0f84e9fe806076f343542e0bd4ce1ca3bdea61ee345e7f46bc066bca4ca8267a8dad8dd7c9ce8581c5e6cb3b81a35042b8c088f1fa643
|
data/lib/assets_server.rb
CHANGED
@@ -17,6 +17,13 @@ class Mumukit::Server::App < Sinatra::Base
|
|
17
17
|
get_local_asset "#{asset_type}/#{name}.svg", "lib/public/#{name}.svg", 'image/svg+xml'
|
18
18
|
end
|
19
19
|
|
20
|
+
def self.get_media_assets(folder)
|
21
|
+
Dir.glob(File.join(__dir__,"../lib/public/#{folder}/*")).each do |path|
|
22
|
+
relative_media_asset_path = "#{folder}/#{File.basename path}"
|
23
|
+
get_local_asset relative_media_asset_path, "lib/public/#{relative_media_asset_path}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
20
27
|
['polymer', 'polymer-mini', 'polymer-micro'].each { |name|
|
21
28
|
get_board_asset "#{name}.html", "htmls/vendor/#{name}.html", 'text/html'
|
22
29
|
}
|
@@ -29,9 +36,13 @@ class Mumukit::Server::App < Sinatra::Base
|
|
29
36
|
get_local_asset 'layout/layout.html', 'lib/render/layout/layout.html', 'text/html'
|
30
37
|
get_local_asset 'editor/editor.js', 'lib/render/editor/editor.js', 'application/javascript'
|
31
38
|
get_local_asset 'editor/editor.css', 'lib/render/editor/editor.css', 'text/css'
|
32
|
-
get_local_asset 'editor/editor.html', 'lib/render/editor/editor.html', 'text/html'
|
33
39
|
get_local_asset 'editor/hammer.min.js', 'lib/render/editor/hammer.min.js', 'application/javascript'
|
34
40
|
get_local_asset 'boom.png', 'lib/public/boom.png', 'image/png'
|
41
|
+
get_local_asset 'full-kindergarten-toolbox.xml', 'lib/public/full-kindergarten-toolbox.xml', 'text/plain'
|
42
|
+
get_local_asset 'minimal-kindergarten-toolbox.xml', 'lib/public/minimal-kindergarten-toolbox.xml', 'text/plain'
|
43
|
+
|
44
|
+
get_media_assets 'media'
|
45
|
+
get_media_assets 'local-media'
|
35
46
|
|
36
47
|
['red', 'blue', 'green', 'black'].each do |name|
|
37
48
|
get_local_svg(name, 'editor')
|
@@ -40,4 +51,13 @@ class Mumukit::Server::App < Sinatra::Base
|
|
40
51
|
['attires_enabled', 'attires_disabled'].each do |name|
|
41
52
|
get_local_svg(name, 'layout')
|
42
53
|
end
|
54
|
+
|
55
|
+
get '/assets/editor/editor.html' do
|
56
|
+
cross_origin
|
57
|
+
@game_framework_extra = Gobstones::CompilationMode::GameFramework.extra_code
|
58
|
+
@game_framework_program = Gobstones::CompilationMode::GameFramework.program_code
|
59
|
+
@game_framework_default = Gobstones::CompilationMode::GameFramework.default_code
|
60
|
+
@assets_url = "//#{request.host_with_port}/assets"
|
61
|
+
erb File.read(File.join(__dir__, 'render/editor/editor.html.erb'))
|
62
|
+
end
|
43
63
|
end
|
data/lib/checker.rb
CHANGED
@@ -49,7 +49,7 @@ module Gobstones
|
|
49
49
|
fail_with status: :check_error_failed_another_reason,
|
50
50
|
result: {
|
51
51
|
reason: result[:finalBoardError],
|
52
|
-
expected_code: expected
|
52
|
+
expected_code: I18n.t("code_#{expected}")
|
53
53
|
} if reason_code != expected
|
54
54
|
end
|
55
55
|
|
@@ -102,7 +102,7 @@ module Gobstones
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def fail_with(error)
|
105
|
-
fail error
|
105
|
+
fail error[:status], details: error[:result]
|
106
106
|
end
|
107
107
|
|
108
108
|
def board_json(board)
|
@@ -0,0 +1,84 @@
|
|
1
|
+
procedure Before() {
|
2
|
+
x := 0
|
3
|
+
y := 0
|
4
|
+
|
5
|
+
while(puedeMover(Sur)) {
|
6
|
+
x := x + 1
|
7
|
+
Mover(Sur)
|
8
|
+
}
|
9
|
+
while(puedeMover(Oeste)) {
|
10
|
+
y := y + 1
|
11
|
+
Mover(Oeste)
|
12
|
+
}
|
13
|
+
|
14
|
+
NextStage()
|
15
|
+
|
16
|
+
while(x > 0) {
|
17
|
+
x := x - 1
|
18
|
+
Mover(Norte)
|
19
|
+
}
|
20
|
+
while(y > 0) {
|
21
|
+
y := y - 1
|
22
|
+
Mover(Este)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
procedure After() {
|
27
|
+
GoToOrigin()
|
28
|
+
NextStage()
|
29
|
+
}
|
30
|
+
|
31
|
+
procedure NextStage() {
|
32
|
+
while(puedeMover(Norte)) {
|
33
|
+
NextRowStage()
|
34
|
+
Mover(Norte)
|
35
|
+
}
|
36
|
+
NextRowStage()
|
37
|
+
GoToOrigin()
|
38
|
+
}
|
39
|
+
|
40
|
+
procedure NextRowStage() {
|
41
|
+
while(puedeMover(Este)) {
|
42
|
+
Poner(Verde)
|
43
|
+
Mover(Este)
|
44
|
+
}
|
45
|
+
Poner(Verde)
|
46
|
+
IrAlBorde(Oeste)
|
47
|
+
}
|
48
|
+
|
49
|
+
procedure ShiftLeft() {
|
50
|
+
ShiftTo(Oeste)
|
51
|
+
}
|
52
|
+
|
53
|
+
procedure ShiftRight() {
|
54
|
+
ShiftTo(Este)
|
55
|
+
}
|
56
|
+
|
57
|
+
procedure ShiftUp() {
|
58
|
+
ShiftTo(Norte)
|
59
|
+
}
|
60
|
+
|
61
|
+
procedure ShiftDown() {
|
62
|
+
ShiftTo(Sur)
|
63
|
+
}
|
64
|
+
|
65
|
+
procedure ShiftTo(dir) {
|
66
|
+
if (puedeMover(dir)) {
|
67
|
+
Sacar(Rojo)
|
68
|
+
Mover(dir)
|
69
|
+
Poner(Rojo)
|
70
|
+
CheckCollision()
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
procedure CheckCollision() {
|
75
|
+
if (hayBolitas(Azul) && nroBolitas(Azul) mod 2 == 0) {
|
76
|
+
After();
|
77
|
+
BOOM("Colision")
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
procedure GoToOrigin() {
|
82
|
+
IrAlBorde(Sur)
|
83
|
+
IrAlBorde(Oeste)
|
84
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<block type="Program" deletable="false" x="189" y="177">
|
2
|
+
<statement name="program">
|
3
|
+
<block type="procedures_callnoreturnnoparams">
|
4
|
+
<mutation name="Before"></mutation>
|
5
|
+
<next>
|
6
|
+
<block type="procedures_callnoreturnnoparams">
|
7
|
+
<mutation name="Main"></mutation>
|
8
|
+
<next>
|
9
|
+
<block type="procedures_callnoreturnnoparams">
|
10
|
+
<mutation name="After"></mutation>
|
11
|
+
</block>
|
12
|
+
</next>
|
13
|
+
</block>
|
14
|
+
</next>
|
15
|
+
</block>
|
16
|
+
</statement>
|
17
|
+
</block>
|
data/lib/gobstones.rb
CHANGED
data/lib/gobstones/batch.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
class Gobstones::Batch
|
2
2
|
attr_accessor :options, :examples, :content, :extra
|
3
|
+
delegate :compile_content, :compile_extra, to: :@compilation_mode
|
3
4
|
|
4
5
|
def initialize(content, examples, extra, options)
|
5
6
|
@content = content
|
6
7
|
@examples = examples
|
7
8
|
@extra = extra
|
8
9
|
@options = options
|
10
|
+
@compilation_mode = @options[:game_framework] ? Gobstones::CompilationMode::GameFramework : Gobstones::CompilationMode::Classic
|
9
11
|
end
|
10
12
|
|
11
13
|
def run_tests!(output)
|
@@ -16,8 +18,8 @@ class Gobstones::Batch
|
|
16
18
|
|
17
19
|
def to_json
|
18
20
|
{
|
19
|
-
code: content,
|
20
|
-
extraCode: extra,
|
21
|
+
code: compile_content(content),
|
22
|
+
extraCode: compile_extra(extra),
|
21
23
|
examples: examples.map { |example| example_json(example) }
|
22
24
|
}.to_json
|
23
25
|
end
|
@@ -3,7 +3,7 @@ module Gobstones::BatchParser
|
|
3
3
|
def parse(request)
|
4
4
|
test = parse_test(request)
|
5
5
|
|
6
|
-
options = parse_options
|
6
|
+
options = parse_options(test).merge(parse_settings(request))
|
7
7
|
examples = parse_examples test, options
|
8
8
|
|
9
9
|
Gobstones::Batch.new request.content, examples, request.extra, options
|
@@ -11,6 +11,10 @@ module Gobstones::BatchParser
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
+
def parse_settings(request)
|
15
|
+
{ game_framework: !!request.dig(:settings, 'game_framework') }
|
16
|
+
end
|
17
|
+
|
14
18
|
def parse_test(request)
|
15
19
|
YAML.load(request.test).deep_symbolize_keys
|
16
20
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module Gobstones
|
2
|
+
module CompilationMode
|
3
|
+
module Classic
|
4
|
+
class << self
|
5
|
+
def compile_extra(extra)
|
6
|
+
extra
|
7
|
+
end
|
8
|
+
|
9
|
+
def compile_content(content)
|
10
|
+
content
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module GameFramework
|
16
|
+
class << self
|
17
|
+
def compile_extra(extra)
|
18
|
+
[extra, extra_code]
|
19
|
+
end
|
20
|
+
|
21
|
+
def compile_content(content)
|
22
|
+
if blockly_code?(content)
|
23
|
+
xml = Nokogiri::XML(content)
|
24
|
+
xml.root.add_child render_framework_file('program.xml')
|
25
|
+
xml.to_xhtml.gsub(/\n\s*/, '')
|
26
|
+
else
|
27
|
+
<<~GBS
|
28
|
+
#{content}
|
29
|
+
|
30
|
+
#{program_code}
|
31
|
+
GBS
|
32
|
+
.chop
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def extra_code
|
37
|
+
render_framework_file 'extra.gbs'
|
38
|
+
end
|
39
|
+
|
40
|
+
def program_code
|
41
|
+
render_framework_file 'program.gbs'
|
42
|
+
end
|
43
|
+
|
44
|
+
def default_code
|
45
|
+
render_framework_file 'default.xml'
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def blockly_code?(content)
|
51
|
+
content.strip.start_with? '<xml'
|
52
|
+
end
|
53
|
+
|
54
|
+
def render_framework_file(name)
|
55
|
+
ERB.new(File.read(File.join(__dir__, "../game_framework/#{name}.erb"))).result
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/gobstones_runner.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'mumukit'
|
2
2
|
require 'erb'
|
3
|
+
require 'nokogiri'
|
3
4
|
|
4
5
|
I18n.load_translations_path File.join(__dir__, 'locales', '*.yml')
|
5
6
|
|
6
7
|
Mumukit.runner_name = 'gobstones'
|
7
8
|
Mumukit.configure do |config|
|
8
|
-
config.docker_image = 'mumuki/mumuki-gobstones-worker:9.
|
9
|
+
config.docker_image = 'mumuki/mumuki-gobstones-worker:9.1'
|
9
10
|
config.content_type = 'html'
|
10
11
|
config.structured = true
|
12
|
+
config.settings = true
|
11
13
|
end
|
12
14
|
|
13
15
|
require_relative './gobstones'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_1">
|
14
|
+
|
15
|
+
<line fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="3.836" y1="3.836" x2="10.336" y2="10.336"/>
|
16
|
+
|
17
|
+
<line fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="10.336" y1="3.836" x2="3.836" y2="10.336"/>
|
18
|
+
</g>
|
19
|
+
<g id="Layer_4" display="none">
|
20
|
+
|
21
|
+
<polyline display="inline" fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
22
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
23
|
+
</g>
|
24
|
+
</svg>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_1">
|
14
|
+
<polyline fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
15
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
16
|
+
</g>
|
17
|
+
</svg>
|
Binary file
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_7">
|
14
|
+
</g>
|
15
|
+
<g id="Layer_1">
|
16
|
+
|
17
|
+
<circle fill="#1B75BB" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="7.087" cy="7.086" r="3.688"/>
|
18
|
+
</g>
|
19
|
+
<g id="Layer_6" display="none">
|
20
|
+
<g display="inline">
|
21
|
+
<g>
|
22
|
+
|
23
|
+
<path fill="#231F20" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
24
|
+
M7.082,3.701c0.021,1.21-0.007,5.512,0,6.771L0.889,7.086L7.082,3.701z"/>
|
25
|
+
</g>
|
26
|
+
<g>
|
27
|
+
|
28
|
+
<path fill="none" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
29
|
+
M7.09,3.701c-0.021,1.21,0.008,5.512,0,6.771l6.194-3.386L7.09,3.701z"/>
|
30
|
+
</g>
|
31
|
+
</g>
|
32
|
+
</g>
|
33
|
+
<g id="Layer_5" display="none">
|
34
|
+
|
35
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="3.836" y1="3.836" x2="10.336" y2="10.336"/>
|
36
|
+
|
37
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="10.336" y1="3.836" x2="3.836" y2="10.336"/>
|
38
|
+
</g>
|
39
|
+
<g id="Layer_4" display="none">
|
40
|
+
|
41
|
+
<polyline display="inline" fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
42
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
43
|
+
</g>
|
44
|
+
</svg>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_7">
|
14
|
+
</g>
|
15
|
+
<g id="Layer_1">
|
16
|
+
|
17
|
+
<circle fill="#404041" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="7.087" cy="7.086" r="3.688"/>
|
18
|
+
</g>
|
19
|
+
<g id="Layer_6" display="none">
|
20
|
+
<g display="inline">
|
21
|
+
<g>
|
22
|
+
|
23
|
+
<path fill="#231F20" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
24
|
+
M7.082,3.701c0.021,1.21-0.007,5.512,0,6.771L0.889,7.086L7.082,3.701z"/>
|
25
|
+
</g>
|
26
|
+
<g>
|
27
|
+
|
28
|
+
<path fill="none" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
29
|
+
M7.09,3.701c-0.021,1.21,0.008,5.512,0,6.771l6.194-3.386L7.09,3.701z"/>
|
30
|
+
</g>
|
31
|
+
</g>
|
32
|
+
</g>
|
33
|
+
<g id="Layer_5" display="none">
|
34
|
+
|
35
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="3.836" y1="3.836" x2="10.336" y2="10.336"/>
|
36
|
+
|
37
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="10.336" y1="3.836" x2="3.836" y2="10.336"/>
|
38
|
+
</g>
|
39
|
+
<g id="Layer_4" display="none">
|
40
|
+
|
41
|
+
<polyline display="inline" fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
42
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
43
|
+
</g>
|
44
|
+
</svg>
|