graphql 1.8.0.pre4 → 1.8.0.pre5
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.
- checksums.yaml +4 -4
- data/lib/graphql/base_type.rb +10 -27
- data/lib/graphql/compatibility/query_parser_specification.rb +7 -0
- data/lib/graphql/field.rb +3 -3
- data/lib/graphql/internal_representation/node.rb +32 -13
- data/lib/graphql/internal_representation/visit.rb +3 -6
- data/lib/graphql/language.rb +1 -0
- data/lib/graphql/language/block_string.rb +47 -0
- data/lib/graphql/language/lexer.rb +129 -68
- data/lib/graphql/language/lexer.rl +13 -4
- data/lib/graphql/language/nodes.rb +6 -3
- data/lib/graphql/language/printer.rb +1 -1
- data/lib/graphql/language/token.rb +1 -1
- data/lib/graphql/query.rb +1 -1
- data/lib/graphql/relay.rb +1 -0
- data/lib/graphql/relay/connection_type.rb +5 -3
- data/lib/graphql/relay/edge_type.rb +2 -1
- data/lib/graphql/relay/type_extensions.rb +30 -0
- data/lib/graphql/schema.rb +25 -0
- data/lib/graphql/schema/build_from_definition.rb +2 -0
- data/lib/graphql/schema/field.rb +3 -0
- data/lib/graphql/schema/finder.rb +153 -0
- data/lib/graphql/schema/member.rb +3 -1
- data/lib/graphql/schema/printer.rb +1 -1
- data/lib/graphql/static_validation/rules/fields_will_merge.rb +15 -8
- data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +11 -1
- data/lib/graphql/tracing/data_dog_tracing.rb +13 -9
- data/lib/graphql/upgrader/member.rb +19 -8
- data/lib/graphql/version.rb +1 -1
- data/spec/graphql/backtrace_spec.rb +10 -0
- data/spec/graphql/directive_spec.rb +3 -1
- data/spec/graphql/language/block_string_spec.rb +70 -0
- data/spec/graphql/language/lexer_spec.rb +9 -0
- data/spec/graphql/query_spec.rb +1 -1
- data/spec/graphql/schema/field_spec.rb +8 -0
- data/spec/graphql/schema/finder_spec.rb +135 -0
- data/spec/graphql/schema/printer_spec.rb +48 -5
- data/spec/graphql/schema_spec.rb +7 -0
- data/spec/graphql/upgrader/member_spec.rb +25 -0
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f08af6fe85ac8b3665acc0a2b8a38ab165dd418a
|
4
|
+
data.tar.gz: f4be355d3ba05a0566ff508d4f00621acafa0f77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a6b65f5db04ad1c127e3328d0ab5dce93430cfb20f6be9cf08e95e9cfbf681d653a1d1277a81347dbbf04d95541010956d7711f14a865bc9e00bad16db62a78
|
7
|
+
data.tar.gz: e5f307b33f3136c71fcd538a9e5e957271bf1a0aaf622287e0e991a5e1a0d3dbc23621df0307332ed3af4840e80eee8b5b3f2ee94deec3f274dadfe3c1eadb72
|
data/lib/graphql/base_type.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require "graphql/relay/type_extensions"
|
3
|
+
|
2
4
|
module GraphQL
|
3
5
|
# The parent for all type classes.
|
4
6
|
class BaseType
|
5
7
|
include GraphQL::Define::NonNullWithBang
|
6
8
|
include GraphQL::Define::InstanceDefinable
|
9
|
+
include GraphQL::Relay::TypeExtensions
|
10
|
+
|
7
11
|
accepts_definitions :name, :description,
|
8
12
|
:introspection,
|
9
13
|
:default_scalar,
|
@@ -60,12 +64,9 @@ module GraphQL
|
|
60
64
|
|
61
65
|
# @param other [GraphQL::BaseType] compare to this object
|
62
66
|
# @return [Boolean] are these types equivalent? (incl. non-null, list)
|
67
|
+
# @see {ModifiesAnotherType#==} for override on List & NonNull types
|
63
68
|
def ==(other)
|
64
|
-
|
65
|
-
self.to_s == other.to_s
|
66
|
-
else
|
67
|
-
super
|
68
|
-
end
|
69
|
+
other.is_a?(GraphQL::BaseType) && self.name == other.name
|
69
70
|
end
|
70
71
|
|
71
72
|
# If this type is modifying an underlying type,
|
@@ -88,6 +89,10 @@ module GraphQL
|
|
88
89
|
def unwrap
|
89
90
|
self.of_type.unwrap
|
90
91
|
end
|
92
|
+
|
93
|
+
def ==(other)
|
94
|
+
other.is_a?(ModifiesAnotherType) && other.of_type == of_type
|
95
|
+
end
|
91
96
|
end
|
92
97
|
|
93
98
|
# Find out which possible type to use for `value`.
|
@@ -184,28 +189,6 @@ module GraphQL
|
|
184
189
|
end
|
185
190
|
end
|
186
191
|
|
187
|
-
# @return [GraphQL::ObjectType] The default connection type for this object type
|
188
|
-
def connection_type
|
189
|
-
@connection_type ||= define_connection
|
190
|
-
end
|
191
|
-
|
192
|
-
# Define a custom connection type for this object type
|
193
|
-
# @return [GraphQL::ObjectType]
|
194
|
-
def define_connection(**kwargs, &block)
|
195
|
-
GraphQL::Relay::ConnectionType.create_type(self, **kwargs, &block)
|
196
|
-
end
|
197
|
-
|
198
|
-
# @return [GraphQL::ObjectType] The default edge type for this object type
|
199
|
-
def edge_type
|
200
|
-
@edge_type ||= define_edge
|
201
|
-
end
|
202
|
-
|
203
|
-
# Define a custom edge type for this object type
|
204
|
-
# @return [GraphQL::ObjectType]
|
205
|
-
def define_edge(**kwargs, &block)
|
206
|
-
GraphQL::Relay::EdgeType.create_type(self, **kwargs, &block)
|
207
|
-
end
|
208
|
-
|
209
192
|
# Return a GraphQL string for the type definition
|
210
193
|
# @param schema [GraphQL::Schema]
|
211
194
|
# @param printer [GraphQL::Schema::Printer]
|
@@ -67,6 +67,10 @@ module GraphQL
|
|
67
67
|
nullValue: null
|
68
68
|
nullValueInObject: {a: null, b: "b"}
|
69
69
|
nullValueInArray: ["a", null, "b"]
|
70
|
+
blockString: """
|
71
|
+
Hello,
|
72
|
+
World
|
73
|
+
"""
|
70
74
|
)
|
71
75
|
}
|
72
76
|
|
|
@@ -100,6 +104,9 @@ module GraphQL
|
|
100
104
|
assert_equal 'a', values[0]
|
101
105
|
assert_instance_of GraphQL::Language::Nodes::NullValue, values[1]
|
102
106
|
assert_equal 'b', values[2]
|
107
|
+
|
108
|
+
block_str_value = inputs[12].value
|
109
|
+
assert_equal "Hello,\n World", block_str_value
|
103
110
|
end
|
104
111
|
|
105
112
|
def test_it_doesnt_parse_nonsense_variables
|
data/lib/graphql/field.rb
CHANGED
@@ -102,7 +102,7 @@ module GraphQL
|
|
102
102
|
# @example Calculating the complexity of a list field
|
103
103
|
# field :items, types[ItemType] do
|
104
104
|
# argument :limit, !types.Int
|
105
|
-
# #
|
105
|
+
# # Multiply the child complexity by the possible items on the list
|
106
106
|
# complexity ->(ctx, args, child_complexity) { child_complexity * args[:limit] }
|
107
107
|
# end
|
108
108
|
#
|
@@ -289,8 +289,8 @@ module GraphQL
|
|
289
289
|
"<Field name:#{name || "not-named"} desc:#{description} resolve:#{resolve_proc}>"
|
290
290
|
end
|
291
291
|
|
292
|
-
# If {#resolve} returned
|
293
|
-
# this method will be called later force the object to return its value.
|
292
|
+
# If {#resolve} returned an object which should be handled lazily,
|
293
|
+
# this method will be called later to force the object to return its value.
|
294
294
|
# @param obj [Object] The {#resolve}-provided object, registered with {Schema#lazy_resolve}
|
295
295
|
# @param args [GraphQL::Query::Arguments] Arguments to this field
|
296
296
|
# @param ctx [GraphQL::Query::Context] Context for this field
|
@@ -4,6 +4,19 @@ module GraphQL
|
|
4
4
|
class Node
|
5
5
|
# @api private
|
6
6
|
DEFAULT_TYPED_CHILDREN = Proc.new { |h, k| h[k] = {} }
|
7
|
+
|
8
|
+
# A specialized, reusable object for leaf nodes.
|
9
|
+
# Behaves like a Hash, but doesn't copy itself.
|
10
|
+
# @api private
|
11
|
+
class NoTypedChildren
|
12
|
+
CHILDREN = [].freeze
|
13
|
+
def dup; self; end
|
14
|
+
def any?; false; end
|
15
|
+
def [](key); CHILDREN; end
|
16
|
+
def each; end
|
17
|
+
end
|
18
|
+
NO_TYPED_CHILDREN = NoTypedChildren.new
|
19
|
+
|
7
20
|
# @return [String] the name this node has in the response
|
8
21
|
attr_reader :name
|
9
22
|
|
@@ -17,8 +30,8 @@ module GraphQL
|
|
17
30
|
# @return [Hash<GraphQL::ObjectType, Hash<String => Node>>]
|
18
31
|
def typed_children
|
19
32
|
@typed_children ||= begin
|
20
|
-
new_tc = Hash.new(&DEFAULT_TYPED_CHILDREN)
|
21
33
|
if @scoped_children.any?
|
34
|
+
new_tc = Hash.new(&DEFAULT_TYPED_CHILDREN)
|
22
35
|
all_object_types = Set.new
|
23
36
|
scoped_children.each_key { |t| all_object_types.merge(@query.possible_types(t)) }
|
24
37
|
# Remove any scoped children which don't follow this return type
|
@@ -27,8 +40,11 @@ module GraphQL
|
|
27
40
|
all_object_types.each do |t|
|
28
41
|
new_tc[t] = get_typed_children(t)
|
29
42
|
end
|
43
|
+
new_tc
|
44
|
+
else
|
45
|
+
NO_TYPED_CHILDREN
|
30
46
|
end
|
31
|
-
|
47
|
+
|
32
48
|
end
|
33
49
|
end
|
34
50
|
|
@@ -125,17 +141,20 @@ module GraphQL
|
|
125
141
|
@ast_nodes |= new_parent.ast_nodes
|
126
142
|
@definitions |= new_parent.definitions
|
127
143
|
end
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
prev_node
|
137
|
-
|
138
|
-
|
144
|
+
new_sc = new_parent.scoped_children
|
145
|
+
if new_sc.any?
|
146
|
+
scope ||= Scope.new(@query, @return_type.unwrap)
|
147
|
+
new_sc.each do |obj_type, new_fields|
|
148
|
+
inner_scope = scope.enter(obj_type)
|
149
|
+
inner_scope.each do |scoped_type|
|
150
|
+
prev_fields = @scoped_children[scoped_type]
|
151
|
+
new_fields.each do |name, new_node|
|
152
|
+
prev_node = prev_fields[name]
|
153
|
+
if prev_node
|
154
|
+
prev_node.deep_merge_node(new_node)
|
155
|
+
else
|
156
|
+
prev_fields[name] = new_node
|
157
|
+
end
|
139
158
|
end
|
140
159
|
end
|
141
160
|
end
|
@@ -24,12 +24,9 @@ module GraphQL
|
|
24
24
|
# visiting the node itself and each of its typed children.
|
25
25
|
def each_node(node)
|
26
26
|
yield(node)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
children.each do |name, node|
|
31
|
-
each_node(node, &visit_block)
|
32
|
-
end
|
27
|
+
node.typed_children.each do |obj_type, children|
|
28
|
+
children.each do |name, node|
|
29
|
+
each_node(node) { |n| yield(n) }
|
33
30
|
end
|
34
31
|
end
|
35
32
|
end
|
data/lib/graphql/language.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module GraphQL
|
3
|
+
module Language
|
4
|
+
module BlockString
|
5
|
+
# Remove leading and trailing whitespace from a block string.
|
6
|
+
# See "Block Strings" in https://github.com/facebook/graphql/blob/master/spec/Section%202%20--%20Language.md
|
7
|
+
def self.trim_whitespace(str)
|
8
|
+
lines = str.split("\n")
|
9
|
+
common_indent = nil
|
10
|
+
|
11
|
+
# find the common whitespace
|
12
|
+
lines.each_with_index do |line, idx|
|
13
|
+
if idx == 0
|
14
|
+
next
|
15
|
+
end
|
16
|
+
line_length = line.size
|
17
|
+
line_indent = line[/\A */].size
|
18
|
+
if line_indent < line_length && (common_indent.nil? || line_indent < common_indent)
|
19
|
+
common_indent = line_indent
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Remove the common whitespace
|
24
|
+
if common_indent
|
25
|
+
lines.each_with_index do |line, idx|
|
26
|
+
if idx == 0
|
27
|
+
next
|
28
|
+
else
|
29
|
+
line[0, common_indent] = ""
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Remove leading & trailing blank lines
|
35
|
+
while lines.first.empty?
|
36
|
+
lines.shift
|
37
|
+
end
|
38
|
+
while lines.last.empty?
|
39
|
+
lines.pop
|
40
|
+
end
|
41
|
+
|
42
|
+
# Rebuild the string
|
43
|
+
lines.join("\n")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -20,7 +20,7 @@ class << self
|
|
20
20
|
private :_graphql_lexer_trans_keys, :_graphql_lexer_trans_keys=
|
21
21
|
end
|
22
22
|
self._graphql_lexer_trans_keys = [
|
23
|
-
4, 20, 4, 20, 12, 13, 12, 13, 9, 13, 11, 11, 0, 45, 0, 0, 4, 20, 1, 1, 12, 13, 9, 26, 12, 13, 9, 26, 9, 26, 11, 11, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 0 ,
|
23
|
+
4, 20, 4, 20, 4, 4, 4, 4, 4, 4, 12, 13, 12, 13, 9, 13, 11, 11, 0, 45, 0, 0, 4, 20, 4, 20, 4, 4, 4, 4, 1, 1, 12, 13, 9, 26, 12, 13, 9, 26, 9, 26, 11, 11, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 0 ,
|
24
24
|
]
|
25
25
|
|
26
26
|
class << self
|
@@ -36,7 +36,7 @@ class << self
|
|
36
36
|
private :_graphql_lexer_index_offsets, :_graphql_lexer_index_offsets=
|
37
37
|
end
|
38
38
|
self._graphql_lexer_index_offsets = [
|
39
|
-
0, 17, 34, 36,
|
39
|
+
0, 17, 34, 35, 36, 37, 39, 41, 46, 47, 93, 94, 111, 128, 129, 130, 131, 133, 151, 153, 171, 189, 190, 221, 252, 283, 314, 345, 376, 407, 438, 469, 500, 531, 562, 593, 624, 655, 686, 717, 748, 779, 810, 841, 872, 903, 934, 965, 996, 1027, 1058, 1089, 1120, 1151, 1182, 1213, 1244, 1275, 1306, 1337, 1368, 1399, 1430, 1461, 1492, 1523, 1554, 1585, 1616, 1647, 1678, 1709, 1740, 1771, 1802, 1833, 1864, 1895, 1926, 1957, 1988, 2019, 2050, 2081, 2112, 2143, 2174, 2205, 2236, 2267, 2298, 2329, 2360, 2391, 2422, 2453, 2484, 2515, 2546, 2577, 2608, 2639, 2670, 2701, 0 ,
|
40
40
|
]
|
41
41
|
|
42
42
|
class << self
|
@@ -44,7 +44,7 @@ class << self
|
|
44
44
|
private :_graphql_lexer_indicies, :_graphql_lexer_indicies=
|
45
45
|
end
|
46
46
|
self._graphql_lexer_indicies = [
|
47
|
-
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 5, 7, 7, 8, 8, 0, 5, 5, 10, 12, 13, 11, 14, 15, 16, 17, 18, 19, 11, 20, 21, 22, 23, 24, 25, 26, 27, 27, 28, 11, 29, 27, 27, 27, 30, 31, 32, 27, 27, 33, 27, 34, 35, 36, 27, 37, 27, 38, 39, 40, 27, 27, 41, 42, 43, 12, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 45, 22, 23, 8, 8, 48, 5, 5, 47, 47, 47, 47, 49, 47, 47, 47, 47, 47, 47, 47, 49, 5, 5, 8, 8, 50, 7, 7, 50, 50, 50, 50, 49, 50, 50, 50, 50, 50, 50, 50, 49, 8, 8, 48, 23, 23, 47, 47, 47, 47, 49, 47, 47, 47, 47, 47, 47, 47, 49, 51, 27, 27, 0, 0, 0, 27, 27, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 53, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 54, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 55, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 56, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 57, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 60, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 61, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 62, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 63, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 64, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 65, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 66, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 67, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 68, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 69, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 70, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 71, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 72, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 73, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 74, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 75, 76, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 77, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 78, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 79, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 80, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 81, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 82, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 83, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 84, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 85, 27, 27, 27, 86, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 87, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 88, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 89, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 90, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 91, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 92, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 93, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 94, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 95, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 96, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 97, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 98, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 99, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 100, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 101, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 102, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 103, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 104, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 105, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 106, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 107, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 108, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 109, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 110, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 111, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 112, 27, 27, 27, 27, 27, 27, 113, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 114, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 115, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 116, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 117, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 118, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 119, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 120, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 121, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 122, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 123, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 124, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 125, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 126, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 127, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 128, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 129, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 130, 27, 27, 27, 27, 131, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 132, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 133, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 134, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 135, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 136, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 137, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 138, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 139, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0 ,
|
47
|
+
2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 6, 7, 8, 9, 9, 11, 11, 12, 12, 0, 9, 9, 14, 16, 17, 15, 18, 19, 20, 21, 22, 23, 15, 24, 25, 26, 27, 28, 29, 30, 31, 31, 32, 15, 33, 31, 31, 31, 34, 35, 36, 31, 31, 37, 31, 38, 39, 40, 31, 41, 31, 42, 43, 44, 31, 31, 45, 46, 47, 16, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 8, 53, 26, 27, 12, 12, 55, 9, 9, 54, 54, 54, 54, 56, 54, 54, 54, 54, 54, 54, 54, 56, 9, 9, 12, 12, 57, 11, 11, 57, 57, 57, 57, 56, 57, 57, 57, 57, 57, 57, 57, 56, 12, 12, 55, 27, 27, 54, 54, 54, 54, 56, 54, 54, 54, 54, 54, 54, 54, 56, 58, 31, 31, 0, 0, 0, 31, 31, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 60, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 61, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 62, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 63, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 64, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 65, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 66, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 67, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 68, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 69, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 70, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 71, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 72, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 73, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 74, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 75, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 76, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 77, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 78, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 79, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 80, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 81, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 82, 83, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 84, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 85, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 86, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 87, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 88, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 89, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 90, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 91, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 92, 31, 31, 31, 93, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 94, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 95, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 96, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 97, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 98, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 99, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 100, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 101, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 102, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 103, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 104, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 105, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 106, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 107, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 108, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 109, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 110, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 111, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 112, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 113, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 114, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 115, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 116, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 117, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 118, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 119, 31, 31, 31, 31, 31, 31, 120, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 121, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 122, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 123, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 124, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 125, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 126, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 127, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 128, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 129, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 130, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 131, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 132, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 133, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 134, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 135, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 136, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 137, 31, 31, 31, 31, 138, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 139, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 140, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 141, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 142, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 143, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 144, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 145, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 146, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0 ,
|
48
48
|
]
|
49
49
|
|
50
50
|
class << self
|
@@ -52,7 +52,7 @@ class << self
|
|
52
52
|
private :_graphql_lexer_index_defaults, :_graphql_lexer_index_defaults=
|
53
53
|
end
|
54
54
|
self._graphql_lexer_index_defaults = [
|
55
|
-
1, 1, 0,
|
55
|
+
1, 1, 5, 5, 5, 0, 10, 0, 13, 15, 48, 1, 1, 51, 5, 20, 49, 54, 57, 57, 54, 49, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0 ,
|
56
56
|
]
|
57
57
|
|
58
58
|
class << self
|
@@ -60,7 +60,7 @@ class << self
|
|
60
60
|
private :_graphql_lexer_trans_cond_spaces, :_graphql_lexer_trans_cond_spaces=
|
61
61
|
end
|
62
62
|
self._graphql_lexer_trans_cond_spaces = [
|
63
|
-
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 ,
|
63
|
+
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 ,
|
64
64
|
]
|
65
65
|
|
66
66
|
class << self
|
@@ -68,7 +68,7 @@ class << self
|
|
68
68
|
private :_graphql_lexer_cond_targs, :_graphql_lexer_cond_targs=
|
69
69
|
end
|
70
70
|
self._graphql_lexer_cond_targs = [
|
71
|
-
|
71
|
+
9, 0, 9, 1, 12, 2, 3, 4, 14, 18, 9, 19, 5, 9, 9, 9, 10, 9, 9, 11, 15, 9, 9, 9, 16, 21, 17, 20, 9, 9, 9, 22, 9, 9, 23, 31, 34, 44, 62, 69, 72, 73, 77, 95, 100, 9, 9, 9, 9, 9, 13, 9, 9, 9, 9, 6, 7, 9, 8, 9, 24, 25, 26, 27, 28, 29, 30, 22, 32, 33, 22, 35, 38, 36, 37, 22, 39, 40, 41, 42, 43, 22, 45, 53, 46, 47, 48, 49, 50, 51, 52, 22, 54, 56, 55, 22, 57, 58, 59, 60, 61, 22, 63, 64, 65, 66, 67, 68, 22, 70, 71, 22, 22, 74, 75, 76, 22, 78, 85, 79, 82, 80, 81, 22, 83, 84, 22, 86, 87, 88, 89, 90, 91, 92, 93, 94, 22, 96, 98, 97, 22, 99, 22, 101, 102, 103, 22, 0 ,
|
72
72
|
]
|
73
73
|
|
74
74
|
class << self
|
@@ -76,7 +76,7 @@ class << self
|
|
76
76
|
private :_graphql_lexer_cond_actions, :_graphql_lexer_cond_actions=
|
77
77
|
end
|
78
78
|
self._graphql_lexer_cond_actions = [
|
79
|
-
1, 0, 2, 0, 3, 0,
|
79
|
+
1, 0, 2, 0, 3, 0, 0, 0, 4, 0, 5, 6, 0, 7, 8, 11, 0, 12, 13, 14, 0, 15, 16, 17, 0, 18, 19, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 3, 31, 32, 33, 34, 0, 0, 35, 0, 36, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 38, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 44, 0, 0, 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 48, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 51, 0, 52, 0, 0, 0, 53, 0 ,
|
80
80
|
]
|
81
81
|
|
82
82
|
class << self
|
@@ -84,7 +84,7 @@ class << self
|
|
84
84
|
private :_graphql_lexer_to_state_actions, :_graphql_lexer_to_state_actions=
|
85
85
|
end
|
86
86
|
self._graphql_lexer_to_state_actions = [
|
87
|
-
0, 0, 0, 0, 0, 0,
|
87
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
|
88
88
|
]
|
89
89
|
|
90
90
|
class << self
|
@@ -92,7 +92,7 @@ class << self
|
|
92
92
|
private :_graphql_lexer_from_state_actions, :_graphql_lexer_from_state_actions=
|
93
93
|
end
|
94
94
|
self._graphql_lexer_from_state_actions = [
|
95
|
-
0, 0, 0, 0, 0, 0,
|
95
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
|
96
96
|
]
|
97
97
|
|
98
98
|
class << self
|
@@ -100,7 +100,7 @@ class << self
|
|
100
100
|
private :_graphql_lexer_eof_trans, :_graphql_lexer_eof_trans=
|
101
101
|
end
|
102
102
|
self._graphql_lexer_eof_trans = [
|
103
|
-
1, 1, 1,
|
103
|
+
1, 1, 1, 1, 1, 1, 11, 1, 14, 0, 49, 50, 52, 52, 53, 54, 50, 55, 58, 58, 55, 50, 1, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0 ,
|
104
104
|
]
|
105
105
|
|
106
106
|
class << self
|
@@ -116,7 +116,7 @@ class << self
|
|
116
116
|
private :_graphql_lexer_nfa_offsets, :_graphql_lexer_nfa_offsets=
|
117
117
|
end
|
118
118
|
self._graphql_lexer_nfa_offsets = [
|
119
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
|
119
|
+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
|
120
120
|
]
|
121
121
|
|
122
122
|
class << self
|
@@ -138,12 +138,12 @@ self._graphql_lexer_nfa_pop_trans = [
|
|
138
138
|
class << self
|
139
139
|
attr_accessor :graphql_lexer_start
|
140
140
|
end
|
141
|
-
self.graphql_lexer_start =
|
141
|
+
self.graphql_lexer_start = 9;
|
142
142
|
|
143
143
|
class << self
|
144
144
|
attr_accessor :graphql_lexer_first_final
|
145
145
|
end
|
146
|
-
self.graphql_lexer_first_final =
|
146
|
+
self.graphql_lexer_first_final = 9;
|
147
147
|
|
148
148
|
class << self
|
149
149
|
attr_accessor :graphql_lexer_error
|
@@ -153,7 +153,7 @@ self.graphql_lexer_error = -1;
|
|
153
153
|
class << self
|
154
154
|
attr_accessor :graphql_lexer_en_main
|
155
155
|
end
|
156
|
-
self.graphql_lexer_en_main =
|
156
|
+
self.graphql_lexer_en_main = 9;
|
157
157
|
|
158
158
|
def self.run_lexer(query_string)
|
159
159
|
data = query_string.unpack("c*")
|
@@ -226,7 +226,7 @@ def self.run_lexer(query_string)
|
|
226
226
|
when -2 then
|
227
227
|
begin
|
228
228
|
end
|
229
|
-
when
|
229
|
+
when 10 then
|
230
230
|
begin
|
231
231
|
begin
|
232
232
|
begin
|
@@ -272,7 +272,7 @@ def self.run_lexer(query_string)
|
|
272
272
|
when -2 then
|
273
273
|
begin
|
274
274
|
end
|
275
|
-
when
|
275
|
+
when 18 then
|
276
276
|
begin
|
277
277
|
begin
|
278
278
|
begin
|
@@ -283,7 +283,7 @@ def self.run_lexer(query_string)
|
|
283
283
|
end
|
284
284
|
|
285
285
|
end
|
286
|
-
when
|
286
|
+
when 28 then
|
287
287
|
begin
|
288
288
|
begin
|
289
289
|
begin
|
@@ -297,7 +297,7 @@ def self.run_lexer(query_string)
|
|
297
297
|
end
|
298
298
|
|
299
299
|
end
|
300
|
-
when
|
300
|
+
when 26 then
|
301
301
|
begin
|
302
302
|
begin
|
303
303
|
begin
|
@@ -311,7 +311,7 @@ def self.run_lexer(query_string)
|
|
311
311
|
end
|
312
312
|
|
313
313
|
end
|
314
|
-
when
|
314
|
+
when 17 then
|
315
315
|
begin
|
316
316
|
begin
|
317
317
|
begin
|
@@ -325,7 +325,7 @@ def self.run_lexer(query_string)
|
|
325
325
|
end
|
326
326
|
|
327
327
|
end
|
328
|
-
when
|
328
|
+
when 16 then
|
329
329
|
begin
|
330
330
|
begin
|
331
331
|
begin
|
@@ -339,7 +339,7 @@ def self.run_lexer(query_string)
|
|
339
339
|
end
|
340
340
|
|
341
341
|
end
|
342
|
-
when
|
342
|
+
when 25 then
|
343
343
|
begin
|
344
344
|
begin
|
345
345
|
begin
|
@@ -353,7 +353,7 @@ def self.run_lexer(query_string)
|
|
353
353
|
end
|
354
354
|
|
355
355
|
end
|
356
|
-
when
|
356
|
+
when 24 then
|
357
357
|
begin
|
358
358
|
begin
|
359
359
|
begin
|
@@ -367,7 +367,7 @@ def self.run_lexer(query_string)
|
|
367
367
|
end
|
368
368
|
|
369
369
|
end
|
370
|
-
when
|
370
|
+
when 20 then
|
371
371
|
begin
|
372
372
|
begin
|
373
373
|
begin
|
@@ -387,7 +387,7 @@ def self.run_lexer(query_string)
|
|
387
387
|
begin
|
388
388
|
te = p+1;
|
389
389
|
begin
|
390
|
-
emit_string(ts
|
390
|
+
emit_string(ts, te, meta, block: false)
|
391
391
|
end
|
392
392
|
|
393
393
|
end
|
@@ -395,7 +395,7 @@ def self.run_lexer(query_string)
|
|
395
395
|
end
|
396
396
|
|
397
397
|
end
|
398
|
-
when
|
398
|
+
when 15 then
|
399
399
|
begin
|
400
400
|
begin
|
401
401
|
begin
|
@@ -409,7 +409,7 @@ def self.run_lexer(query_string)
|
|
409
409
|
end
|
410
410
|
|
411
411
|
end
|
412
|
-
when
|
412
|
+
when 22 then
|
413
413
|
begin
|
414
414
|
begin
|
415
415
|
begin
|
@@ -423,7 +423,7 @@ def self.run_lexer(query_string)
|
|
423
423
|
end
|
424
424
|
|
425
425
|
end
|
426
|
-
when
|
426
|
+
when 8 then
|
427
427
|
begin
|
428
428
|
begin
|
429
429
|
begin
|
@@ -437,7 +437,7 @@ def self.run_lexer(query_string)
|
|
437
437
|
end
|
438
438
|
|
439
439
|
end
|
440
|
-
when
|
440
|
+
when 21 then
|
441
441
|
begin
|
442
442
|
begin
|
443
443
|
begin
|
@@ -451,7 +451,7 @@ def self.run_lexer(query_string)
|
|
451
451
|
end
|
452
452
|
|
453
453
|
end
|
454
|
-
when
|
454
|
+
when 13 then
|
455
455
|
begin
|
456
456
|
begin
|
457
457
|
begin
|
@@ -465,7 +465,7 @@ def self.run_lexer(query_string)
|
|
465
465
|
end
|
466
466
|
|
467
467
|
end
|
468
|
-
when
|
468
|
+
when 27 then
|
469
469
|
begin
|
470
470
|
begin
|
471
471
|
begin
|
@@ -479,7 +479,7 @@ def self.run_lexer(query_string)
|
|
479
479
|
end
|
480
480
|
|
481
481
|
end
|
482
|
-
when
|
482
|
+
when 12 then
|
483
483
|
begin
|
484
484
|
begin
|
485
485
|
begin
|
@@ -495,7 +495,7 @@ def self.run_lexer(query_string)
|
|
495
495
|
end
|
496
496
|
|
497
497
|
end
|
498
|
-
when
|
498
|
+
when 11 then
|
499
499
|
begin
|
500
500
|
begin
|
501
501
|
begin
|
@@ -509,7 +509,7 @@ def self.run_lexer(query_string)
|
|
509
509
|
end
|
510
510
|
|
511
511
|
end
|
512
|
-
when
|
512
|
+
when 34 then
|
513
513
|
begin
|
514
514
|
begin
|
515
515
|
begin
|
@@ -524,7 +524,7 @@ def self.run_lexer(query_string)
|
|
524
524
|
end
|
525
525
|
|
526
526
|
end
|
527
|
-
when
|
527
|
+
when 35 then
|
528
528
|
begin
|
529
529
|
begin
|
530
530
|
begin
|
@@ -539,7 +539,37 @@ def self.run_lexer(query_string)
|
|
539
539
|
end
|
540
540
|
|
541
541
|
end
|
542
|
-
when
|
542
|
+
when 31 then
|
543
|
+
begin
|
544
|
+
begin
|
545
|
+
begin
|
546
|
+
te = p;
|
547
|
+
p = p - 1;
|
548
|
+
begin
|
549
|
+
emit_string(ts, te, meta, block: false)
|
550
|
+
end
|
551
|
+
|
552
|
+
end
|
553
|
+
|
554
|
+
end
|
555
|
+
|
556
|
+
end
|
557
|
+
when 32 then
|
558
|
+
begin
|
559
|
+
begin
|
560
|
+
begin
|
561
|
+
te = p;
|
562
|
+
p = p - 1;
|
563
|
+
begin
|
564
|
+
emit_string(ts, te, meta, block: true)
|
565
|
+
end
|
566
|
+
|
567
|
+
end
|
568
|
+
|
569
|
+
end
|
570
|
+
|
571
|
+
end
|
572
|
+
when 36 then
|
543
573
|
begin
|
544
574
|
begin
|
545
575
|
begin
|
@@ -554,7 +584,7 @@ def self.run_lexer(query_string)
|
|
554
584
|
end
|
555
585
|
|
556
586
|
end
|
557
|
-
when
|
587
|
+
when 33 then
|
558
588
|
begin
|
559
589
|
begin
|
560
590
|
begin
|
@@ -569,7 +599,7 @@ def self.run_lexer(query_string)
|
|
569
599
|
end
|
570
600
|
|
571
601
|
end
|
572
|
-
when
|
602
|
+
when 29 then
|
573
603
|
begin
|
574
604
|
begin
|
575
605
|
begin
|
@@ -599,7 +629,7 @@ def self.run_lexer(query_string)
|
|
599
629
|
end
|
600
630
|
|
601
631
|
end
|
602
|
-
when
|
632
|
+
when 5 then
|
603
633
|
begin
|
604
634
|
begin
|
605
635
|
begin
|
@@ -613,7 +643,7 @@ def self.run_lexer(query_string)
|
|
613
643
|
end
|
614
644
|
|
615
645
|
end
|
616
|
-
when
|
646
|
+
when 7 then
|
617
647
|
begin
|
618
648
|
begin
|
619
649
|
begin
|
@@ -791,11 +821,19 @@ def self.run_lexer(query_string)
|
|
791
821
|
begin
|
792
822
|
p = ((te))-1;
|
793
823
|
begin
|
794
|
-
emit_string(ts
|
824
|
+
emit_string(ts, te, meta, block: false)
|
825
|
+
end
|
826
|
+
|
827
|
+
end
|
828
|
+
when 28 then
|
829
|
+
begin
|
830
|
+
p = ((te))-1;
|
831
|
+
begin
|
832
|
+
emit_string(ts, te, meta, block: true)
|
795
833
|
end
|
796
834
|
|
797
835
|
end
|
798
|
-
when
|
836
|
+
when 35 then
|
799
837
|
begin
|
800
838
|
p = ((te))-1;
|
801
839
|
begin
|
@@ -803,7 +841,7 @@ def self.run_lexer(query_string)
|
|
803
841
|
end
|
804
842
|
|
805
843
|
end
|
806
|
-
when
|
844
|
+
when 39 then
|
807
845
|
begin
|
808
846
|
p = ((te))-1;
|
809
847
|
begin
|
@@ -820,7 +858,7 @@ def self.run_lexer(query_string)
|
|
820
858
|
end
|
821
859
|
|
822
860
|
end
|
823
|
-
when
|
861
|
+
when 19 then
|
824
862
|
begin
|
825
863
|
begin
|
826
864
|
begin
|
@@ -838,7 +876,7 @@ def self.run_lexer(query_string)
|
|
838
876
|
end
|
839
877
|
|
840
878
|
end
|
841
|
-
when
|
879
|
+
when 6 then
|
842
880
|
begin
|
843
881
|
begin
|
844
882
|
begin
|
@@ -856,7 +894,7 @@ def self.run_lexer(query_string)
|
|
856
894
|
end
|
857
895
|
|
858
896
|
end
|
859
|
-
when
|
897
|
+
when 46 then
|
860
898
|
begin
|
861
899
|
begin
|
862
900
|
begin
|
@@ -874,7 +912,7 @@ def self.run_lexer(query_string)
|
|
874
912
|
end
|
875
913
|
|
876
914
|
end
|
877
|
-
when
|
915
|
+
when 40 then
|
878
916
|
begin
|
879
917
|
begin
|
880
918
|
begin
|
@@ -892,7 +930,7 @@ def self.run_lexer(query_string)
|
|
892
930
|
end
|
893
931
|
|
894
932
|
end
|
895
|
-
when
|
933
|
+
when 51 then
|
896
934
|
begin
|
897
935
|
begin
|
898
936
|
begin
|
@@ -910,7 +948,7 @@ def self.run_lexer(query_string)
|
|
910
948
|
end
|
911
949
|
|
912
950
|
end
|
913
|
-
when
|
951
|
+
when 39 then
|
914
952
|
begin
|
915
953
|
begin
|
916
954
|
begin
|
@@ -928,7 +966,7 @@ def self.run_lexer(query_string)
|
|
928
966
|
end
|
929
967
|
|
930
968
|
end
|
931
|
-
when
|
969
|
+
when 45 then
|
932
970
|
begin
|
933
971
|
begin
|
934
972
|
begin
|
@@ -946,7 +984,7 @@ def self.run_lexer(query_string)
|
|
946
984
|
end
|
947
985
|
|
948
986
|
end
|
949
|
-
when
|
987
|
+
when 47 then
|
950
988
|
begin
|
951
989
|
begin
|
952
990
|
begin
|
@@ -964,7 +1002,7 @@ def self.run_lexer(query_string)
|
|
964
1002
|
end
|
965
1003
|
|
966
1004
|
end
|
967
|
-
when
|
1005
|
+
when 44 then
|
968
1006
|
begin
|
969
1007
|
begin
|
970
1008
|
begin
|
@@ -982,7 +1020,7 @@ def self.run_lexer(query_string)
|
|
982
1020
|
end
|
983
1021
|
|
984
1022
|
end
|
985
|
-
when
|
1023
|
+
when 50 then
|
986
1024
|
begin
|
987
1025
|
begin
|
988
1026
|
begin
|
@@ -1000,7 +1038,7 @@ def self.run_lexer(query_string)
|
|
1000
1038
|
end
|
1001
1039
|
|
1002
1040
|
end
|
1003
|
-
when
|
1041
|
+
when 49 then
|
1004
1042
|
begin
|
1005
1043
|
begin
|
1006
1044
|
begin
|
@@ -1018,7 +1056,7 @@ def self.run_lexer(query_string)
|
|
1018
1056
|
end
|
1019
1057
|
|
1020
1058
|
end
|
1021
|
-
when
|
1059
|
+
when 48 then
|
1022
1060
|
begin
|
1023
1061
|
begin
|
1024
1062
|
begin
|
@@ -1036,7 +1074,7 @@ def self.run_lexer(query_string)
|
|
1036
1074
|
end
|
1037
1075
|
|
1038
1076
|
end
|
1039
|
-
when
|
1077
|
+
when 52 then
|
1040
1078
|
begin
|
1041
1079
|
begin
|
1042
1080
|
begin
|
@@ -1054,7 +1092,7 @@ def self.run_lexer(query_string)
|
|
1054
1092
|
end
|
1055
1093
|
|
1056
1094
|
end
|
1057
|
-
when
|
1095
|
+
when 41 then
|
1058
1096
|
begin
|
1059
1097
|
begin
|
1060
1098
|
begin
|
@@ -1072,7 +1110,7 @@ def self.run_lexer(query_string)
|
|
1072
1110
|
end
|
1073
1111
|
|
1074
1112
|
end
|
1075
|
-
when
|
1113
|
+
when 43 then
|
1076
1114
|
begin
|
1077
1115
|
begin
|
1078
1116
|
begin
|
@@ -1090,7 +1128,7 @@ def self.run_lexer(query_string)
|
|
1090
1128
|
end
|
1091
1129
|
|
1092
1130
|
end
|
1093
|
-
when
|
1131
|
+
when 53 then
|
1094
1132
|
begin
|
1095
1133
|
begin
|
1096
1134
|
begin
|
@@ -1108,7 +1146,7 @@ def self.run_lexer(query_string)
|
|
1108
1146
|
end
|
1109
1147
|
|
1110
1148
|
end
|
1111
|
-
when
|
1149
|
+
when 38 then
|
1112
1150
|
begin
|
1113
1151
|
begin
|
1114
1152
|
begin
|
@@ -1126,7 +1164,7 @@ def self.run_lexer(query_string)
|
|
1126
1164
|
end
|
1127
1165
|
|
1128
1166
|
end
|
1129
|
-
when
|
1167
|
+
when 42 then
|
1130
1168
|
begin
|
1131
1169
|
begin
|
1132
1170
|
begin
|
@@ -1144,7 +1182,7 @@ def self.run_lexer(query_string)
|
|
1144
1182
|
end
|
1145
1183
|
|
1146
1184
|
end
|
1147
|
-
when
|
1185
|
+
when 37 then
|
1148
1186
|
begin
|
1149
1187
|
begin
|
1150
1188
|
begin
|
@@ -1180,7 +1218,7 @@ def self.run_lexer(query_string)
|
|
1180
1218
|
end
|
1181
1219
|
|
1182
1220
|
end
|
1183
|
-
when
|
1221
|
+
when 4 then
|
1184
1222
|
begin
|
1185
1223
|
begin
|
1186
1224
|
begin
|
@@ -1191,14 +1229,14 @@ def self.run_lexer(query_string)
|
|
1191
1229
|
end
|
1192
1230
|
begin
|
1193
1231
|
begin
|
1194
|
-
act =
|
1232
|
+
act = 28;
|
1195
1233
|
|
1196
1234
|
end
|
1197
1235
|
|
1198
1236
|
end
|
1199
1237
|
|
1200
1238
|
end
|
1201
|
-
when
|
1239
|
+
when 23 then
|
1202
1240
|
begin
|
1203
1241
|
begin
|
1204
1242
|
begin
|
@@ -1209,7 +1247,25 @@ def self.run_lexer(query_string)
|
|
1209
1247
|
end
|
1210
1248
|
begin
|
1211
1249
|
begin
|
1212
|
-
act =
|
1250
|
+
act = 35;
|
1251
|
+
|
1252
|
+
end
|
1253
|
+
|
1254
|
+
end
|
1255
|
+
|
1256
|
+
end
|
1257
|
+
when 14 then
|
1258
|
+
begin
|
1259
|
+
begin
|
1260
|
+
begin
|
1261
|
+
te = p+1;
|
1262
|
+
|
1263
|
+
end
|
1264
|
+
|
1265
|
+
end
|
1266
|
+
begin
|
1267
|
+
begin
|
1268
|
+
act = 39;
|
1213
1269
|
|
1214
1270
|
end
|
1215
1271
|
|
@@ -1222,7 +1278,7 @@ def self.run_lexer(query_string)
|
|
1222
1278
|
when -2 then
|
1223
1279
|
begin
|
1224
1280
|
end
|
1225
|
-
when
|
1281
|
+
when 9 then
|
1226
1282
|
begin
|
1227
1283
|
begin
|
1228
1284
|
begin
|
@@ -1303,8 +1359,13 @@ VALID_STRING = /\A(?:[^\\]|#{ESCAPES}|#{UTF_8})*\z/o
|
|
1303
1359
|
PACK_DIRECTIVE = "c*"
|
1304
1360
|
UTF_8_ENCODING = "UTF-8"
|
1305
1361
|
|
1306
|
-
def self.emit_string(ts, te, meta)
|
1307
|
-
|
1362
|
+
def self.emit_string(ts, te, meta, block:)
|
1363
|
+
quotes_length = block ? 3 : 1
|
1364
|
+
ts += quotes_length
|
1365
|
+
value = meta[:data][ts...te - quotes_length].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
|
1366
|
+
if block
|
1367
|
+
value = GraphQL::Language::BlockString.trim_whitespace(value)
|
1368
|
+
end
|
1308
1369
|
if value !~ VALID_STRING
|
1309
1370
|
meta[:tokens] << token = GraphQL::Language::Token.new(
|
1310
1371
|
name: :BAD_UNICODE_ESCAPE,
|