Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
cfaca42e
Unverified
Commit
cfaca42e
authored
Nov 23, 2020
by
Ryan McKinley
Committed by
GitHub
Nov 23, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
InfluxDB: update flux library and support boolean label values (#29310)
parent
83329ae7
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
176 additions
and
144 deletions
+176
-144
go.mod
+1
-2
go.sum
+4
-6
pkg/tsdb/influxdb/flux/builder.go
+4
-3
pkg/tsdb/influxdb/flux/executor_test.go
+100
-112
pkg/tsdb/influxdb/flux/testdata/boolean.csv
+9
-0
pkg/tsdb/influxdb/flux/testdata/boolean.golden.txt
+58
-0
pkg/tsdb/influxdb/flux/testdata/multiple.csv
+0
-6
pkg/tsdb/influxdb/flux/testdata/multiple.golden.txt
+0
-15
No files found.
go.mod
View file @
cfaca42e
...
...
@@ -22,7 +22,6 @@ require (
github.com/centrifugal/centrifuge v0.13.0
github.com/crewjam/saml v0.4.1
github.com/davecgh/go-spew v1.1.1
github.com/deepmap/oapi-codegen v1.3.11 // indirect
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec
github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 // indirect
github.com/facebookgo/inject v0.0.0-20180706035515-f23751cae28b
...
...
@@ -50,7 +49,7 @@ require (
github.com/hashicorp/go-plugin v1.2.2
github.com/hashicorp/go-version v1.2.0
github.com/inconshreveable/log15 v0.0.0-20180818164646-67afb5ed74ec
github.com/influxdata/influxdb-client-go/v2 v2.
0.1
github.com/influxdata/influxdb-client-go/v2 v2.
2.0
github.com/jmespath/go-jmespath v0.4.0
github.com/jonboulle/clockwork v0.2.1 // indirect
github.com/jung-kurt/gofpdf v1.10.1
...
...
go.sum
View file @
cfaca42e
...
...
@@ -260,9 +260,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9/go.mod h1:GgB8SF9nRG+GqaDtLcwJZsQFhcogVCJ79j4EdT0c2V4=
github.com/deepmap/oapi-codegen v1.3.6/go.mod h1:aBozjEveG+33xPiP55Iw/XbVkhtZHEGLq3nxlX0+hfU=
github.com/deepmap/oapi-codegen v1.3.11 h1:Nd3tDQfqgquLmCzyRONHzs5SJEwPPoQcFZxT8MKt1Hs=
github.com/deepmap/oapi-codegen v1.3.11/go.mod h1:suMvK7+rKlx3+tpa8ByptmvoXbAV70wERKTOGH3hLp0=
github.com/deepmap/oapi-codegen v1.3.13 h1:9HKGCsdJqE4dnrQ8VerFS0/1ZOJPmAhN+g8xgp8y3K4=
github.com/deepmap/oapi-codegen v1.3.13/go.mod h1:WAmG5dWY8/PYHt4vKxlt90NsbHMAOCiteYKZMiIRfOo=
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec h1:NfhRXXFDPxcF5Cwo06DzeIaE7uuJtAUhsDwH3LNsjos=
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4=
...
...
@@ -343,7 +342,6 @@ github.com/fsouza/fake-gcs-server v1.7.0/go.mod h1:5XIRs4YvwNbNoz+1JF8j6KLAyDh7R
github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc=
github.com/gchaincl/sqlhooks v1.3.0 h1:yKPXxW9a5CjXaVf2HkQn6wn7TZARvbAOAelr3H8vK2Y=
github.com/gchaincl/sqlhooks v1.3.0/go.mod h1:9BypXnereMT0+Ys8WGWHqzgkkOfHIhyeUCqXC24ra34=
github.com/getkin/kin-openapi v0.2.0/go.mod h1:V1z9xl9oF5Wt7v32ne4FmiF1alpS4dM6mNzoywPOXlk=
github.com/getkin/kin-openapi v0.13.0/go.mod h1:WGRs2ZMM1Q8LR1QBEwUxC6RJEfaBcD0s+pcEVXFuAjw=
github.com/getsentry/sentry-go v0.7.0 h1:MR2yfR4vFfv/2+iBuSnkdQwVg7N9cJzihZ6KJu7srwQ=
github.com/getsentry/sentry-go v0.7.0/go.mod h1:pLFpD2Y5RHIKF9Bw3KH6/68DeN2K/XBJd8awjdPnUwg=
...
...
@@ -716,8 +714,8 @@ github.com/influxdata/go-syslog/v3 v3.0.1-0.20200510134747-836dce2cf6da/go.mod h
github.com/influxdata/influxdb v1.7.7/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
github.com/influxdata/influxdb v1.8.0/go.mod h1:SIzcnsjaHRFpmlxpJ4S3NT64qtEKYweNTUMb/vh0OMQ=
github.com/influxdata/influxdb v1.8.1/go.mod h1:SIzcnsjaHRFpmlxpJ4S3NT64qtEKYweNTUMb/vh0OMQ=
github.com/influxdata/influxdb-client-go/v2 v2.
0.1 h1:vRla3taM+zkziP1NUGfN6Y6zJ9ZSSMg0fs/JhCGyX1s
=
github.com/influxdata/influxdb-client-go/v2 v2.
0.1/go.mod h1:eyFPc0lhFnNSpyCDb0ZkrB3Hbtqvn1K1JZmjo2BXqeo
=
github.com/influxdata/influxdb-client-go/v2 v2.
2.0 h1:2R/le0s/MZpHtc+ijuXKe2c4KGN14M85mWtGlmg6vec
=
github.com/influxdata/influxdb-client-go/v2 v2.
2.0/go.mod h1:fa/d1lAdUHxuc1jedx30ZfNG573oQTQmUni3N6pcW+0
=
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/influxdata/influxql v1.1.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=
github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
...
...
pkg/tsdb/influxdb/flux/builder.go
View file @
cfaca42e
...
...
@@ -209,9 +209,10 @@ func (fb *frameBuilder) Append(record *query.FluxRecord) error {
// set the labels
labels
:=
make
(
map
[
string
]
string
)
for
_
,
name
:=
range
fb
.
labels
{
val
,
ok
:=
record
.
ValueByKey
(
name
)
.
(
string
)
if
ok
{
labels
[
name
]
=
val
val
:=
record
.
ValueByKey
(
name
)
str
:=
fmt
.
Sprintf
(
"%v"
,
val
)
if
val
!=
nil
&&
str
!=
""
{
labels
[
name
]
=
str
}
}
fb
.
active
.
Fields
[
1
]
.
Labels
=
labels
...
...
pkg/tsdb/influxdb/flux/executor_test.go
View file @
cfaca42e
...
...
@@ -73,141 +73,129 @@ func verifyGoldenResponse(t *testing.T, name string) *backend.DataResponse {
}
func
TestExecuteSimple
(
t
*
testing
.
T
)
{
t
.
Run
(
"Simple Test"
,
func
(
t
*
testing
.
T
)
{
dr
:=
verifyGoldenResponse
(
t
,
"simple"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
require
.
Contains
(
t
,
dr
.
Frames
[
0
]
.
Name
,
"test"
)
require
.
Len
(
t
,
dr
.
Frames
[
0
]
.
Fields
[
1
]
.
Labels
,
2
)
require
.
Equal
(
t
,
"Time"
,
dr
.
Frames
[
0
]
.
Fields
[
0
]
.
Name
)
st
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
st
)
fmt
.
Println
(
"----------------------"
)
})
dr
:=
verifyGoldenResponse
(
t
,
"simple"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
require
.
Contains
(
t
,
dr
.
Frames
[
0
]
.
Name
,
"test"
)
require
.
Len
(
t
,
dr
.
Frames
[
0
]
.
Fields
[
1
]
.
Labels
,
2
)
require
.
Equal
(
t
,
"Time"
,
dr
.
Frames
[
0
]
.
Fields
[
0
]
.
Name
)
st
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
st
)
fmt
.
Println
(
"----------------------"
)
}
func
TestExecuteSingle
(
t
*
testing
.
T
)
{
t
.
Run
(
"Single value"
,
func
(
t
*
testing
.
T
)
{
dr
:=
verifyGoldenResponse
(
t
,
"single"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
})
dr
:=
verifyGoldenResponse
(
t
,
"single"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
}
func
TestExecuteMultiple
(
t
*
testing
.
T
)
{
t
.
Run
(
"Multiple Test"
,
func
(
t
*
testing
.
T
)
{
dr
:=
verifyGoldenResponse
(
t
,
"multiple"
)
require
.
Len
(
t
,
dr
.
Frames
,
4
)
require
.
Contains
(
t
,
dr
.
Frames
[
0
]
.
Name
,
"test"
)
require
.
Len
(
t
,
dr
.
Frames
[
0
]
.
Fields
[
1
]
.
Labels
,
2
)
require
.
Equal
(
t
,
"Time"
,
dr
.
Frames
[
0
]
.
Fields
[
0
]
.
Name
)
st
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
st
)
fmt
.
Println
(
"----------------------"
)
})
dr
:=
verifyGoldenResponse
(
t
,
"multiple"
)
require
.
Len
(
t
,
dr
.
Frames
,
3
)
require
.
Contains
(
t
,
dr
.
Frames
[
0
]
.
Name
,
"test"
)
require
.
Len
(
t
,
dr
.
Frames
[
0
]
.
Fields
[
1
]
.
Labels
,
2
)
require
.
Equal
(
t
,
"Time"
,
dr
.
Frames
[
0
]
.
Fields
[
0
]
.
Name
)
st
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
st
)
fmt
.
Println
(
"----------------------"
)
}
func
TestExecuteGrouping
(
t
*
testing
.
T
)
{
t
.
Run
(
"Grouping Test"
,
func
(
t
*
testing
.
T
)
{
dr
:=
verifyGoldenResponse
(
t
,
"grouping"
)
require
.
Len
(
t
,
dr
.
Frames
,
3
)
require
.
Contains
(
t
,
dr
.
Frames
[
0
]
.
Name
,
"system"
)
require
.
Len
(
t
,
dr
.
Frames
[
0
]
.
Fields
[
1
]
.
Labels
,
1
)
require
.
Equal
(
t
,
"Time"
,
dr
.
Frames
[
0
]
.
Fields
[
0
]
.
Name
)
st
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
st
)
fmt
.
Println
(
"----------------------"
)
})
dr
:=
verifyGoldenResponse
(
t
,
"grouping"
)
require
.
Len
(
t
,
dr
.
Frames
,
3
)
require
.
Contains
(
t
,
dr
.
Frames
[
0
]
.
Name
,
"system"
)
require
.
Len
(
t
,
dr
.
Frames
[
0
]
.
Fields
[
1
]
.
Labels
,
1
)
require
.
Equal
(
t
,
"Time"
,
dr
.
Frames
[
0
]
.
Fields
[
0
]
.
Name
)
st
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
st
)
fmt
.
Println
(
"----------------------"
)
}
func
TestAggregateGrouping
(
t
*
testing
.
T
)
{
t
.
Run
(
"Grouping Test"
,
func
(
t
*
testing
.
T
)
{
dr
:=
verifyGoldenResponse
(
t
,
"aggregate"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
dr
:=
verifyGoldenResponse
(
t
,
"aggregate"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
str
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
str
)
// `Name:
// Dimensions: 2 Fields by 3 Rows
// +-------------------------------+--------------------------+
// | Name: Time | Name: |
// | Labels: | Labels: host=hostname.ru |
// | Type: []time.Time | Type: []*float64 |
// +-------------------------------+--------------------------+
// | 2020-06-05 12:06:00 +0000 UTC | 8.291 |
// | 2020-06-05 12:07:00 +0000 UTC | 0.534 |
// | 2020-06-05 12:08:00 +0000 UTC | 0.667 |
// +-------------------------------+--------------------------+
// `
expectedFrame
:=
data
.
NewFrame
(
""
,
data
.
NewField
(
"Time"
,
nil
,
[]
time
.
Time
{
time
.
Date
(
2020
,
6
,
5
,
12
,
6
,
0
,
0
,
time
.
UTC
),
time
.
Date
(
2020
,
6
,
5
,
12
,
7
,
0
,
0
,
time
.
UTC
),
time
.
Date
(
2020
,
6
,
5
,
12
,
8
,
0
,
0
,
time
.
UTC
),
}),
data
.
NewField
(
""
,
map
[
string
]
string
{
"host"
:
"hostname.ru"
},
[]
*
float64
{
pointer
.
Float64
(
8.291
),
pointer
.
Float64
(
0.534
),
pointer
.
Float64
(
0.667
),
}),
)
expectedFrame
.
Meta
=
&
data
.
FrameMeta
{}
diff
:=
cmp
.
Diff
(
expectedFrame
,
dr
.
Frames
[
0
],
data
.
FrameTestCompareOptions
()
...
)
assert
.
Empty
(
t
,
diff
)
})
str
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
str
)
// `Name:
// Dimensions: 2 Fields by 3 Rows
// +-------------------------------+--------------------------+
// | Name: Time | Name: |
// | Labels: | Labels: host=hostname.ru |
// | Type: []time.Time | Type: []*float64 |
// +-------------------------------+--------------------------+
// | 2020-06-05 12:06:00 +0000 UTC | 8.291 |
// | 2020-06-05 12:07:00 +0000 UTC | 0.534 |
// | 2020-06-05 12:08:00 +0000 UTC | 0.667 |
// +-------------------------------+--------------------------+
// `
expectedFrame
:=
data
.
NewFrame
(
""
,
data
.
NewField
(
"Time"
,
nil
,
[]
time
.
Time
{
time
.
Date
(
2020
,
6
,
5
,
12
,
6
,
0
,
0
,
time
.
UTC
),
time
.
Date
(
2020
,
6
,
5
,
12
,
7
,
0
,
0
,
time
.
UTC
),
time
.
Date
(
2020
,
6
,
5
,
12
,
8
,
0
,
0
,
time
.
UTC
),
}),
data
.
NewField
(
""
,
map
[
string
]
string
{
"host"
:
"hostname.ru"
},
[]
*
float64
{
pointer
.
Float64
(
8.291
),
pointer
.
Float64
(
0.534
),
pointer
.
Float64
(
0.667
),
}),
)
expectedFrame
.
Meta
=
&
data
.
FrameMeta
{}
diff
:=
cmp
.
Diff
(
expectedFrame
,
dr
.
Frames
[
0
],
data
.
FrameTestCompareOptions
()
...
)
assert
.
Empty
(
t
,
diff
)
}
func
TestNonStandardTimeColumn
(
t
*
testing
.
T
)
{
t
.
Run
(
"Time Column"
,
func
(
t
*
testing
.
T
)
{
dr
:=
verifyGoldenResponse
(
t
,
"non_standard_time_column"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
str
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
str
)
// Dimensions: 2 Fields by 1 Rows
// +-----------------------------------------+------------------+
// | Name: _start_water | Name: |
// | Labels: | Labels: st=1 |
// | Type: []time.Time | Type: []*float64 |
// +-----------------------------------------+------------------+
// | 2020-06-28 17:50:13.012584046 +0000 UTC | 156.304 |
// +-----------------------------------------+------------------+
expectedFrame
:=
data
.
NewFrame
(
""
,
data
.
NewField
(
"_start_water"
,
nil
,
[]
time
.
Time
{
time
.
Date
(
2020
,
6
,
28
,
17
,
50
,
13
,
12584046
,
time
.
UTC
),
}),
data
.
NewField
(
""
,
map
[
string
]
string
{
"st"
:
"1"
},
[]
*
float64
{
pointer
.
Float64
(
156.304
),
}),
)
expectedFrame
.
Meta
=
&
data
.
FrameMeta
{}
dr
:=
verifyGoldenResponse
(
t
,
"non_standard_time_column"
)
require
.
Len
(
t
,
dr
.
Frames
,
1
)
diff
:=
cmp
.
Diff
(
expectedFrame
,
dr
.
Frames
[
0
],
data
.
FrameTestCompareOptions
()
...
)
assert
.
Empty
(
t
,
diff
)
})
str
,
err
:=
dr
.
Frames
[
0
]
.
StringTable
(
-
1
,
-
1
)
require
.
NoError
(
t
,
err
)
fmt
.
Println
(
str
)
// Dimensions: 2 Fields by 1 Rows
// +-----------------------------------------+------------------+
// | Name: _start_water | Name: |
// | Labels: | Labels: st=1 |
// | Type: []time.Time | Type: []*float64 |
// +-----------------------------------------+------------------+
// | 2020-06-28 17:50:13.012584046 +0000 UTC | 156.304 |
// +-----------------------------------------+------------------+
expectedFrame
:=
data
.
NewFrame
(
""
,
data
.
NewField
(
"_start_water"
,
nil
,
[]
time
.
Time
{
time
.
Date
(
2020
,
6
,
28
,
17
,
50
,
13
,
12584046
,
time
.
UTC
),
}),
data
.
NewField
(
""
,
map
[
string
]
string
{
"st"
:
"1"
},
[]
*
float64
{
pointer
.
Float64
(
156.304
),
}),
)
expectedFrame
.
Meta
=
&
data
.
FrameMeta
{}
diff
:=
cmp
.
Diff
(
expectedFrame
,
dr
.
Frames
[
0
],
data
.
FrameTestCompareOptions
()
...
)
assert
.
Empty
(
t
,
diff
)
}
func
TestBuckets
(
t
*
testing
.
T
)
{
t
.
Run
(
"Buckes"
,
func
(
t
*
testing
.
T
)
{
verifyGoldenResponse
(
t
,
"buckets"
)
})
verifyGoldenResponse
(
t
,
"buckets"
)
}
func
TestBooleanGrouping
(
t
*
testing
.
T
)
{
verifyGoldenResponse
(
t
,
"boolean"
)
}
func
TestGoldenFiles
(
t
*
testing
.
T
)
{
t
.
Run
(
"Renamed"
,
func
(
t
*
testing
.
T
)
{
verifyGoldenResponse
(
t
,
"renamed"
)
})
verifyGoldenResponse
(
t
,
"renamed"
)
}
func
TestRealQuery
(
t
*
testing
.
T
)
{
...
...
pkg/tsdb/influxdb/flux/testdata/boolean.csv
0 → 100644
View file @
cfaca42e
#group,false,false,false,false,true,true,false,false,false,true
#datatype,string,long,string,string,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,boolean,string
#default,_result,,,,,,,,,
,result,table,_field,_measurement,_start,_stop,_time,_value,dead,train
,,0,file_size,ingress,2020-10-28T00:07:53.819772368Z,2020-11-11T00:07:53.819772368Z,2020-11-09T17:27:00Z,3339,true,350117
,,1,file_size,ingress,2020-10-28T00:07:53.819772368Z,2020-11-11T00:07:53.819772368Z,2020-11-10T12:29:00Z,3666,true,350125
,,2,file_size,ingress,2020-10-28T00:07:53.819772368Z,2020-11-11T00:07:53.819772368Z,2020-11-09T19:01:00Z,3570,true,350236
,,3,file_size,ingress,2020-10-28T00:07:53.819772368Z,2020-11-11T00:07:53.819772368Z,2020-11-09T07:13:00Z,2772,true,350410
pkg/tsdb/influxdb/flux/testdata/boolean.golden.txt
0 → 100644
View file @
cfaca42e
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {}
Name: ingress
Dimensions: 2 Fields by 1 Rows
+-------------------------------+---------------------------------+
| Name: Time | Name: file_size |
| Labels: | Labels: dead=true, train=350117 |
| Type: []time.Time | Type: []*int64 |
+-------------------------------+---------------------------------+
| 2020-11-09 17:27:00 +0000 UTC | 3339 |
+-------------------------------+---------------------------------+
Frame[1]
Name: ingress
Dimensions: 2 Fields by 1 Rows
+-------------------------------+---------------------------------+
| Name: Time | Name: file_size |
| Labels: | Labels: dead=true, train=350125 |
| Type: []time.Time | Type: []*int64 |
+-------------------------------+---------------------------------+
| 2020-11-10 12:29:00 +0000 UTC | 3666 |
+-------------------------------+---------------------------------+
Frame[2]
Name: ingress
Dimensions: 2 Fields by 1 Rows
+-------------------------------+---------------------------------+
| Name: Time | Name: file_size |
| Labels: | Labels: dead=true, train=350236 |
| Type: []time.Time | Type: []*int64 |
+-------------------------------+---------------------------------+
| 2020-11-09 19:01:00 +0000 UTC | 3570 |
+-------------------------------+---------------------------------+
Frame[3]
Name: ingress
Dimensions: 2 Fields by 1 Rows
+-------------------------------+---------------------------------+
| Name: Time | Name: file_size |
| Labels: | Labels: dead=true, train=350410 |
| Type: []time.Time | Type: []*int64 |
+-------------------------------+---------------------------------+
| 2020-11-09 07:13:00 +0000 UTC | 2772 |
+-------------------------------+---------------------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////+AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAHgAAAADAAAAUAAAACgAAAAEAAAAmP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAC4/v//CAAAABAAAAAHAAAAaW5ncmVzcwAEAAAAbmFtZQAAAADc/v//CAAAAAwAAAACAAAAe30AAAQAAABtZXRhAAAAAAIAAADgAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAACEAAAAjAAAAAAAAgGQAAAAAgAAADAAAAAEAAAAQP///wgAAAAUAAAACQAAAGZpbGVfc2l6ZQAAAAQAAABuYW1lAAAAAGj///8IAAAALAAAACAAAAB7ImRlYWQiOiJ0cnVlIiwidHJhaW4iOiIzNTAxMTcifQAAAAAGAAAAbGFiZWxzAAAAAAAACAAMAAgABwAIAAAAAAAAAUAAAAAJAAAAZmlsZV9zaXplABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAP////+4AAAAFAAAAAAAAAAMABYAFAATAAwABAAMAAAAEAAAAAAAAAAUAAAAAAAAAwMACgAYAAwACAAEAAoAAAAUAAAAWAAAAAEAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAADo6c795kUWCw0AAAAAAAAQAAAADAAUABIADAAIAAQADAAAABAAAAAsAAAAPAAAAAAAAwABAAAACAIAAAAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAAB4AAAAAwAAAFAAAAAoAAAABAAAAJj+//8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAAuP7//wgAAAAQAAAABwAAAGluZ3Jlc3MABAAAAG5hbWUAAAAA3P7//wgAAAAMAAAAAgAAAHt9AAAEAAAAbWV0YQAAAAACAAAA4AAAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAhAAAAIwAAAAAAAIBkAAAAAIAAAAwAAAABAAAAED///8IAAAAFAAAAAkAAABmaWxlX3NpemUAAAAEAAAAbmFtZQAAAABo////CAAAACwAAAAgAAAAeyJkZWFkIjoidHJ1ZSIsInRyYWluIjoiMzUwMTE3In0AAAAABgAAAGxhYmVscwAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAACQAAAGZpbGVfc2l6ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAoAgAAQVJST1cx
FRAME=QVJST1cxAAD/////2AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAAC4/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAANj+//8IAAAAEAAAAAcAAABpbmdyZXNzAAQAAABuYW1lAAAAAAIAAADgAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAACEAAAAjAAAAAAAAgGQAAAAAgAAADAAAAAEAAAAQP///wgAAAAUAAAACQAAAGZpbGVfc2l6ZQAAAAQAAABuYW1lAAAAAGj///8IAAAALAAAACAAAAB7ImRlYWQiOiJ0cnVlIiwidHJhaW4iOiIzNTAxMjUifQAAAAAGAAAAbGFiZWxzAAAAAAAACAAMAAgABwAIAAAAAAAAAUAAAAAJAAAAZmlsZV9zaXplABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAAAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAABAAAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAFgAAAABAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAeCxdTyVGFlIOAAAAAAAAEAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADgAAAAAAAMAAQAAAOgBAAAAAAAAwAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAABUAAAAAgAAACgAAAAEAAAAuP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADY/v//CAAAABAAAAAHAAAAaW5ncmVzcwAEAAAAbmFtZQAAAAACAAAA4AAAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAhAAAAIwAAAAAAAIBkAAAAAIAAAAwAAAABAAAAED///8IAAAAFAAAAAkAAABmaWxlX3NpemUAAAAEAAAAbmFtZQAAAABo////CAAAACwAAAAgAAAAeyJkZWFkIjoidHJ1ZSIsInRyYWluIjoiMzUwMTI1In0AAAAABgAAAGxhYmVscwAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAACQAAAGZpbGVfc2l6ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAgAAQVJST1cx
FRAME=QVJST1cxAAD/////2AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAAC4/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAANj+//8IAAAAEAAAAAcAAABpbmdyZXNzAAQAAABuYW1lAAAAAAIAAADgAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAACEAAAAjAAAAAAAAgGQAAAAAgAAADAAAAAEAAAAQP///wgAAAAUAAAACQAAAGZpbGVfc2l6ZQAAAAQAAABuYW1lAAAAAGj///8IAAAALAAAACAAAAB7ImRlYWQiOiJ0cnVlIiwidHJhaW4iOiIzNTAyMzYifQAAAAAGAAAAbGFiZWxzAAAAAAAACAAMAAgABwAIAAAAAAAAAUAAAAAJAAAAZmlsZV9zaXplABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAAAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAABAAAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAFgAAAABAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAOBz5HuxFFvINAAAAAAAAEAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADgAAAAAAAMAAQAAAOgBAAAAAAAAwAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAABUAAAAAgAAACgAAAAEAAAAuP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADY/v//CAAAABAAAAAHAAAAaW5ncmVzcwAEAAAAbmFtZQAAAAACAAAA4AAAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAhAAAAIwAAAAAAAIBkAAAAAIAAAAwAAAABAAAAED///8IAAAAFAAAAAkAAABmaWxlX3NpemUAAAAEAAAAbmFtZQAAAABo////CAAAACwAAAAgAAAAeyJkZWFkIjoidHJ1ZSIsInRyYWluIjoiMzUwMjM2In0AAAAABgAAAGxhYmVscwAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAACQAAAGZpbGVfc2l6ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAgAAQVJST1cx
FRAME=QVJST1cxAAD/////2AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAAC4/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAANj+//8IAAAAEAAAAAcAAABpbmdyZXNzAAQAAABuYW1lAAAAAAIAAADgAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAACEAAAAjAAAAAAAAgGQAAAAAgAAADAAAAAEAAAAQP///wgAAAAUAAAACQAAAGZpbGVfc2l6ZQAAAAQAAABuYW1lAAAAAGj///8IAAAALAAAACAAAAB7ImRlYWQiOiJ0cnVlIiwidHJhaW4iOiIzNTA0MTAifQAAAAAGAAAAbGFiZWxzAAAAAAAACAAMAAgABwAIAAAAAAAAAUAAAAAJAAAAZmlsZV9zaXplABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAAAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAABAAAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAFgAAAABAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA2MxTfMVFFtQKAAAAAAAAEAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADgAAAAAAAMAAQAAAOgBAAAAAAAAwAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAABUAAAAAgAAACgAAAAEAAAAuP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADY/v//CAAAABAAAAAHAAAAaW5ncmVzcwAEAAAAbmFtZQAAAAACAAAA4AAAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAhAAAAIwAAAAAAAIBkAAAAAIAAAAwAAAABAAAAED///8IAAAAFAAAAAkAAABmaWxlX3NpemUAAAAEAAAAbmFtZQAAAABo////CAAAACwAAAAgAAAAeyJkZWFkIjoidHJ1ZSIsInRyYWluIjoiMzUwNDEwIn0AAAAABgAAAGxhYmVscwAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAACQAAAGZpbGVfc2l6ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAgAAQVJST1cx
pkg/tsdb/influxdb/flux/testdata/multiple.csv
View file @
cfaca42e
...
...
@@ -10,12 +10,6 @@
,result,table,_start,_stop,_time,_value,_field,_measurement,a,b
,,1,2020-02-17T22:19:49.747562847Z,2020-02-18T22:19:49.747562847Z,2020-02-18T10:34:08.135814545Z,4,i,test,1,adsfasdf
,,1,2020-02-17T22:19:49.747562847Z,2020-02-18T22:19:49.747562847Z,2020-02-18T22:08:44.850214724Z,-1,i,test,1,adsfasdf
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,bool,string,string,string,string
#group,false,false,true,true,false,false,true,true,true,true
#default,_result,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,a,b
,,2,2020-02-17T22:19:49.747562847Z,2020-02-18T22:19:49.747562847Z,2020-02-18T22:08:44.62797864Z,false,f,test,0,adsfasdf
,,2,2020-02-17T22:19:49.747562847Z,2020-02-18T22:19:49.747562847Z,2020-02-18T22:08:44.969100374Z,true,f,test,0,adsfasdf
#datatype,string,long,dateTime:RFC3339Nano,dateTime:RFC3339Nano,dateTime:RFC3339Nano,unsignedLong,string,string,string,string
#group,false,false,true,true,false,false,true,true,true,true
#default,_result,,,,,,,,,
...
...
pkg/tsdb/influxdb/flux/testdata/multiple.golden.txt
View file @
cfaca42e
...
...
@@ -32,20 +32,6 @@ Frame[2]
Name: test
Dimensions: 2 Fields by 2 Rows
+-----------------------------------------+-------------------------+
| Name: Time | Name: f |
| Labels: | Labels: a=0, b=adsfasdf |
| Type: []time.Time | Type: []*bool |
+-----------------------------------------+-------------------------+
| 2020-02-18 22:08:44.62797864 +0000 UTC | false |
| 2020-02-18 22:08:44.969100374 +0000 UTC | true |
+-----------------------------------------+-------------------------+
Frame[3]
Name: test
Dimensions: 2 Fields by 2 Rows
+-----------------------------------------+-------------------------+
| Name: _start | Name: i |
| Labels: | Labels: a=0, b=adsfasdf |
| Type: []time.Time | Type: []*uint64 |
...
...
@@ -58,5 +44,4 @@ Dimensions: 2 Fields by 2 Rows
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////2AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAHgAAAADAAAAUAAAACgAAAAEAAAAvP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADc/v//CAAAABAAAAAEAAAAdGVzdAAAAAAEAAAAbmFtZQAAAAAA////CAAAAAwAAAACAAAAe30AAAQAAABtZXRhAAAAAAIAAAC8AAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAAB0AAAAdAAAAAAAAwF0AAAAAgAAACgAAAAEAAAAZP///wgAAAAMAAAAAQAAAGYAAAAEAAAAbmFtZQAAAACE////CAAAACQAAAAYAAAAeyJhIjoiMSIsImIiOiJhZHNmYXNkZiJ9AAAAAAYAAABsYWJlbHMAAAAAAACO////AAACAAEAAABmABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAAAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAACAAAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAFgAAAACAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAACRnfi9q3j0FUR3uluTnvQVZmZmZmZm9j9mZmZmZmYaQBAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAADAAEAAADoAQAAAAAAAMAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAeAAAAAMAAABQAAAAKAAAAAQAAAC8/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAANz+//8IAAAAEAAAAAQAAAB0ZXN0AAAAAAQAAABuYW1lAAAAAAD///8IAAAADAAAAAIAAAB7fQAABAAAAG1ldGEAAAAAAgAAALwAAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAHQAAAB0AAAAAAADAXQAAAACAAAAKAAAAAQAAABk////CAAAAAwAAAABAAAAZgAAAAQAAABuYW1lAAAAAIT///8IAAAAJAAAABgAAAB7ImEiOiIxIiwiYiI6ImFkc2Zhc2RmIn0AAAAABgAAAGxhYmVscwAAAAAAAI7///8AAAIAAQAAAGYAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAAAAIAAEFSUk9XMQ==
FRAME=QVJST1cxAAD/////wAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAADQ/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAPD+//8IAAAAEAAAAAQAAAB0ZXN0AAAAAAQAAABuYW1lAAAAAAIAAADIAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAAB0AAAAfAAAAAAAAgGAAAAAAgAAACgAAAAEAAAAWP///wgAAAAMAAAAAQAAAGkAAAAEAAAAbmFtZQAAAAB4////CAAAACQAAAAYAAAAeyJhIjoiMSIsImIiOiJhZHNmYXNkZiJ9AAAAAAYAAABsYWJlbHMAAAAAAAAIAAwACAAHAAgAAAAAAAABQAAAAAEAAABpABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAAAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAACAAAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAFgAAAACAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAACRnfi9q3j0FUR3uluTnvQVBAAAAAAAAAD//////////xAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAADAAEAAADQAQAAAAAAAMAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAVAAAAAIAAAAoAAAABAAAAND+//8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAA8P7//wgAAAAQAAAABAAAAHRlc3QAAAAABAAAAG5hbWUAAAAAAgAAAMgAAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAHQAAAB8AAAAAAACAYAAAAACAAAAKAAAAAQAAABY////CAAAAAwAAAABAAAAaQAAAAQAAABuYW1lAAAAAHj///8IAAAAJAAAABgAAAB7ImEiOiIxIiwiYiI6ImFkc2Zhc2RmIn0AAAAABgAAAGxhYmVscwAAAAAAAAgADAAIAAcACAAAAAAAAAFAAAAAAQAAAGkAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAA6AEAAEFSUk9XMQ==
FRAME=QVJST1cxAAD/////sAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAADc/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAPz+//8IAAAAEAAAAAQAAAB0ZXN0AAAAAAQAAABuYW1lAAAAAAIAAAC8AAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAAB0AAAAeAAAAAAABgF0AAAAAgAAACgAAAAEAAAAZP///wgAAAAMAAAAAQAAAGYAAAAEAAAAbmFtZQAAAACE////CAAAACQAAAAYAAAAeyJhIjoiMCIsImIiOiJhZHNmYXNkZiJ9AAAAAAYAAABsYWJlbHMAAAAAAAAEAAQABAAAAAEAAABmABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAP////+4AAAAFAAAAAAAAAAMABYAFAATAAwABAAMAAAAGAAAAAAAAAAUAAAAAAAAAwMACgAYAAwACAAEAAoAAAAUAAAAWAAAAAIAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAgAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAJBpe06TnvQVVoTQYpOe9BUCAAAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAADAAEAAADAAQAAAAAAAMAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAADc/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAPz+//8IAAAAEAAAAAQAAAB0ZXN0AAAAAAQAAABuYW1lAAAAAAIAAAC8AAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAAB0AAAAeAAAAAAABgF0AAAAAgAAACgAAAAEAAAAZP///wgAAAAMAAAAAQAAAGYAAAAEAAAAbmFtZQAAAACE////CAAAACQAAAAYAAAAeyJhIjoiMCIsImIiOiJhZHNmYXNkZiJ9AAAAAAYAAABsYWJlbHMAAAAAAAAEAAQABAAAAAEAAABmABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAOABAABBUlJPVzE=
FRAME=QVJST1cxAAD/////uAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFQAAAACAAAAKAAAAAQAAADU/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAPT+//8IAAAAEAAAAAQAAAB0ZXN0AAAAAAQAAABuYW1lAAAAAAIAAADEAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAAB0AAAAfAAAAAAAAgF8AAAAAgAAACgAAAAEAAAAXP///wgAAAAMAAAAAQAAAGkAAAAEAAAAbmFtZQAAAAB8////CAAAACQAAAAYAAAAeyJhIjoiMCIsImIiOiJhZHNmYXNkZiJ9AAAAAAYAAABsYWJlbHMAAAAAAAAAAAYACAAEAAYAAABAAAAAAQAAAGkAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAYAAABfc3RhcnQAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABgAAAF9zdGFydAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAgAAAAAAAAABQAAAAAAAADAwAKABgADAAIAAQACgAAABQAAABYAAAAAgAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAX9ljmZlQ9BVf2WOZmVD0FQAAAAAAAAAAAgAAAAAAAAAQAAAADAAUABIADAAIAAQADAAAABAAAAAsAAAAPAAAAAAAAwABAAAAyAEAAAAAAADAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAABUAAAAAgAAACgAAAAEAAAA1P7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAD0/v//CAAAABAAAAAEAAAAdGVzdAAAAAAEAAAAbmFtZQAAAAACAAAAxAAAABgAAAAAABIAGAAUABMAEgAMAAAACAAEABIAAAAUAAAAdAAAAHwAAAAAAAIBfAAAAAIAAAAoAAAABAAAAFz///8IAAAADAAAAAEAAABpAAAABAAAAG5hbWUAAAAAfP///wgAAAAkAAAAGAAAAHsiYSI6IjAiLCJiIjoiYWRzZmFzZGYifQAAAAAGAAAAbGFiZWxzAAAAAAAAAAAGAAgABAAGAAAAQAAAAAEAAABpABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAGAAAAX3N0YXJ0AAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAYAAABfc3RhcnQAAOgBAABBUlJPVzE=
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment