Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-workhorse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-workhorse
Commits
b0798c9b
Commit
b0798c9b
authored
Apr 06, 2018
by
Nick Thomas
Committed by
Jacob Vosmaer (GitLab)
Apr 06, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bridge between Gitaly and GitLab for a new repository snapshot endpoint
parent
9c54fcc3
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
510 additions
and
112 deletions
+510
-112
gitaly_test.go
gitaly_test.go
+103
-0
internal/git/snapshot.go
internal/git/snapshot.go
+67
-0
internal/gitaly/repository.go
internal/gitaly/repository.go
+15
-0
internal/testhelper/gitaly.go
internal/testhelper/gitaly.go
+33
-5
internal/upstream/routes.go
internal/upstream/routes.go
+1
-0
vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION
vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION
+1
-1
vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go
vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go
+4
-0
vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go
...b.com/gitlab-org/gitaly-proto/go/repository-service.pb.go
+281
-101
vendor/vendor.json
vendor/vendor.json
+5
-5
No files found.
gitaly_test.go
View file @
b0798c9b
...
@@ -2,6 +2,7 @@ package main
...
@@ -2,6 +2,7 @@ package main
import
(
import
(
"bytes"
"bytes"
"encoding/json"
"fmt"
"fmt"
"io/ioutil"
"io/ioutil"
"math/rand"
"math/rand"
...
@@ -22,6 +23,8 @@ import (
...
@@ -22,6 +23,8 @@ import (
pb
"gitlab.com/gitlab-org/gitaly-proto/go"
pb
"gitlab.com/gitlab-org/gitaly-proto/go"
"github.com/golang/protobuf/jsonpb"
"github.com/golang/protobuf/proto"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/require"
"google.golang.org/grpc"
"google.golang.org/grpc"
...
@@ -579,6 +582,106 @@ func TestGetPatchProxiedToGitalyInterruptedStream(t *testing.T) {
...
@@ -579,6 +582,106 @@ func TestGetPatchProxiedToGitalyInterruptedStream(t *testing.T) {
}
}
}
}
func
TestGetSnapshotProxiedToGitalySuccessfully
(
t
*
testing
.
T
)
{
gitalyServer
,
socketPath
:=
startGitalyServer
(
t
,
codes
.
OK
)
defer
gitalyServer
.
Stop
()
gitalyAddress
:=
"unix://"
+
socketPath
expectedBody
:=
testhelper
.
GitalyGetSnapshotResponseMock
archiveLength
:=
len
(
expectedBody
)
params
:=
buildGetSnapshotParams
(
gitalyAddress
,
buildPbRepo
(
"default"
,
"foo/bar.git"
))
resp
,
body
,
err
:=
doSendDataRequest
(
"/api/v4/projects/:id/snapshot"
,
"git-snapshot"
,
params
)
require
.
NoError
(
t
,
err
)
assert
.
Equal
(
t
,
http
.
StatusOK
,
resp
.
StatusCode
,
"GET %q: status code"
,
resp
.
Request
.
URL
)
assert
.
Equal
(
t
,
expectedBody
,
string
(
body
),
"GET %q: body"
,
resp
.
Request
.
URL
)
assert
.
Equal
(
t
,
archiveLength
,
len
(
body
),
"GET %q: body size"
,
resp
.
Request
.
URL
)
testhelper
.
AssertResponseHeader
(
t
,
resp
,
"Content-Disposition"
,
`attachment; filename="snapshot.tar"`
)
testhelper
.
AssertResponseHeader
(
t
,
resp
,
"Content-Type"
,
"application/x-tar"
)
testhelper
.
AssertResponseHeader
(
t
,
resp
,
"Content-Transfer-Encoding"
,
"binary"
)
testhelper
.
AssertResponseHeader
(
t
,
resp
,
"Cache-Control"
,
"private"
)
}
func
TestGetSnapshotProxiedToGitalyInterruptedStream
(
t
*
testing
.
T
)
{
gitalyServer
,
socketPath
:=
startGitalyServer
(
t
,
codes
.
OK
)
defer
gitalyServer
.
Stop
()
gitalyAddress
:=
"unix://"
+
socketPath
params
:=
buildGetSnapshotParams
(
gitalyAddress
,
buildPbRepo
(
"default"
,
"foo/bar.git"
))
resp
,
_
,
err
:=
doSendDataRequest
(
"/api/v4/projects/:id/snapshot"
,
"git-snapshot"
,
params
)
require
.
NoError
(
t
,
err
)
// This causes the server stream to be interrupted instead of consumed entirely.
resp
.
Body
.
Close
()
done
:=
make
(
chan
struct
{})
go
func
()
{
gitalyServer
.
WaitGroup
.
Wait
()
close
(
done
)
}()
select
{
case
<-
done
:
return
case
<-
time
.
After
(
10
*
time
.
Second
)
:
t
.
Fatal
(
"time out waiting for gitaly handler to return"
)
}
}
func
buildGetSnapshotParams
(
gitalyAddress
string
,
repo
*
pb
.
Repository
)
string
{
msg
:=
serializedMessage
(
"GetSnapshotRequest"
,
&
pb
.
GetSnapshotRequest
{
Repository
:
repo
})
return
buildGitalyRpcParams
(
gitalyAddress
,
msg
)
}
type
rpcArg
struct
{
k
string
v
interface
{}
}
// Gitlab asks workhorse to perform some long-running RPCs for it by sending
// the RPC arguments (which are protobuf messages) in HTTP response headers.
// The messages are encoded to JSON objects using pbjson, The strings are then
// re-encoded to JSON strings using json. We must replicate this behaviour here
func
buildGitalyRpcParams
(
gitalyAddress
string
,
rpcArgs
...
rpcArg
)
string
{
built
:=
map
[
string
]
interface
{}{
"GitalyServer"
:
map
[
string
]
string
{
"Address"
:
gitalyAddress
,
"Token"
:
""
,
},
}
for
_
,
arg
:=
range
rpcArgs
{
built
[
arg
.
k
]
=
arg
.
v
}
b
,
err
:=
json
.
Marshal
(
interface
{}(
built
))
if
err
!=
nil
{
panic
(
err
)
}
return
string
(
b
)
}
func
buildPbRepo
(
storageName
,
relativePath
string
)
*
pb
.
Repository
{
return
&
pb
.
Repository
{
StorageName
:
storageName
,
RelativePath
:
relativePath
,
}
}
func
serializedMessage
(
name
string
,
arg
proto
.
Message
)
rpcArg
{
m
:=
&
jsonpb
.
Marshaler
{}
str
,
err
:=
m
.
MarshalToString
(
arg
)
if
err
!=
nil
{
panic
(
err
)
}
return
rpcArg
{
name
,
str
}
}
type
combinedServer
struct
{
type
combinedServer
struct
{
*
grpc
.
Server
*
grpc
.
Server
*
testhelper
.
GitalyTestServer
*
testhelper
.
GitalyTestServer
...
...
internal/git/snapshot.go
0 → 100644
View file @
b0798c9b
package
git
import
(
"fmt"
"io"
"net/http"
"github.com/golang/protobuf/jsonpb"
pb
"gitlab.com/gitlab-org/gitaly-proto/go"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/gitaly"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/helper"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/senddata"
)
type
snapshot
struct
{
senddata
.
Prefix
}
type
snapshotParams
struct
{
GitalyServer
gitaly
.
Server
GetSnapshotRequest
string
}
var
(
SendSnapshot
=
&
snapshot
{
"git-snapshot:"
}
)
func
(
s
*
snapshot
)
Inject
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
,
sendData
string
)
{
var
params
snapshotParams
if
err
:=
s
.
Unpack
(
&
params
,
sendData
);
err
!=
nil
{
helper
.
Fail500
(
w
,
r
,
fmt
.
Errorf
(
"SendSnapshot: unpack sendData: %v"
,
err
))
return
}
request
:=
&
pb
.
GetSnapshotRequest
{}
if
err
:=
jsonpb
.
UnmarshalString
(
params
.
GetSnapshotRequest
,
request
);
err
!=
nil
{
helper
.
Fail500
(
w
,
r
,
fmt
.
Errorf
(
"SendSnapshot: unmarshal GetSnapshotRequest: %v"
,
err
))
return
}
c
,
err
:=
gitaly
.
NewRepositoryClient
(
params
.
GitalyServer
)
if
err
!=
nil
{
helper
.
Fail500
(
w
,
r
,
fmt
.
Errorf
(
"SendSnapshot: gitaly.NewRepositoryClient: %v"
,
err
))
return
}
reader
,
err
:=
c
.
SnapshotReader
(
r
.
Context
(),
request
)
if
err
!=
nil
{
helper
.
Fail500
(
w
,
r
,
fmt
.
Errorf
(
"SendSnapshot: client.SnapshotReader: %v"
,
err
))
return
}
w
.
Header
()
.
Del
(
"Content-Length"
)
w
.
Header
()
.
Set
(
"Content-Disposition"
,
`attachment; filename="snapshot.tar"`
)
w
.
Header
()
.
Set
(
"Content-Type"
,
"application/x-tar"
)
w
.
Header
()
.
Set
(
"Content-Transfer-Encoding"
,
"binary"
)
w
.
Header
()
.
Set
(
"Cache-Control"
,
"private"
)
w
.
WriteHeader
(
http
.
StatusOK
)
// Errors aren't detectable beyond this point
if
_
,
err
:=
io
.
Copy
(
w
,
reader
);
err
!=
nil
{
helper
.
LogError
(
r
,
fmt
.
Errorf
(
"SendSnapshot: copy gitaly output: %v"
,
err
))
}
return
}
internal/gitaly/repository.go
View file @
b0798c9b
...
@@ -28,3 +28,18 @@ func (client *RepositoryClient) ArchiveReader(ctx context.Context, request *pb.G
...
@@ -28,3 +28,18 @@ func (client *RepositoryClient) ArchiveReader(ctx context.Context, request *pb.G
return
resp
.
GetData
(),
err
return
resp
.
GetData
(),
err
}),
nil
}),
nil
}
}
// SnapshotReader performs a GetSnapshot Gitaly request and returns an io.Reader
// for the response
func
(
client
*
RepositoryClient
)
SnapshotReader
(
ctx
context
.
Context
,
request
*
pb
.
GetSnapshotRequest
)
(
io
.
Reader
,
error
)
{
c
,
err
:=
client
.
GetSnapshot
(
ctx
,
request
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"RepositoryService::GetSnapshot: %v"
,
err
)
}
return
streamio
.
NewReader
(
func
()
([]
byte
,
error
)
{
resp
,
err
:=
c
.
Recv
()
return
resp
.
GetData
(),
err
}),
nil
}
internal/testhelper/gitaly.go
View file @
b0798c9b
...
@@ -23,11 +23,14 @@ type GitalyTestServer struct {
...
@@ -23,11 +23,14 @@ type GitalyTestServer struct {
}
}
var
(
var
(
GitalyInfoRefsResponseMock
=
strings
.
Repeat
(
"Mock Gitaly InfoRefsResponse data"
,
100000
)
GitalyInfoRefsResponseMock
=
strings
.
Repeat
(
"Mock Gitaly InfoRefsResponse data"
,
100000
)
GitalyGetBlobResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetBlobResponse data"
,
100000
)
GitalyGetBlobResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetBlobResponse data"
,
100000
)
GitalyGetArchiveResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetArchiveResponse data"
,
100000
)
GitalyGetArchiveResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetArchiveResponse data"
,
100000
)
GitalyGetDiffResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetDiffResponse data"
,
100000
)
GitalyGetDiffResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetDiffResponse data"
,
100000
)
GitalyGetPatchResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetPatchResponse data"
,
100000
)
GitalyGetPatchResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetPatchResponse data"
,
100000
)
GitalyGetSnapshotResponseMock
=
strings
.
Repeat
(
"Mock Gitaly GetSnapshotResponse data"
,
100000
)
GitalyReceivePackResponseMock
[]
byte
GitalyReceivePackResponseMock
[]
byte
GitalyUploadPackResponseMock
[]
byte
GitalyUploadPackResponseMock
[]
byte
)
)
...
@@ -280,6 +283,27 @@ func (s *GitalyTestServer) RawPatch(in *pb.RawPatchRequest, stream pb.DiffServic
...
@@ -280,6 +283,27 @@ func (s *GitalyTestServer) RawPatch(in *pb.RawPatchRequest, stream pb.DiffServic
return
s
.
finalError
()
return
s
.
finalError
()
}
}
func
(
s
*
GitalyTestServer
)
GetSnapshot
(
in
*
pb
.
GetSnapshotRequest
,
stream
pb
.
RepositoryService_GetSnapshotServer
)
error
{
s
.
WaitGroup
.
Add
(
1
)
defer
s
.
WaitGroup
.
Done
()
if
err
:=
validateRepository
(
in
.
GetRepository
());
err
!=
nil
{
return
err
}
nSends
,
err
:=
sendBytes
([]
byte
(
GitalyGetSnapshotResponseMock
),
100
,
func
(
p
[]
byte
)
error
{
return
stream
.
Send
(
&
pb
.
GetSnapshotResponse
{
Data
:
p
})
})
if
err
!=
nil
{
return
err
}
if
nSends
<=
1
{
panic
(
"should have sent more than one message"
)
}
return
s
.
finalError
()
}
func
(
s
*
GitalyTestServer
)
RepositoryExists
(
context
.
Context
,
*
pb
.
RepositoryExistsRequest
)
(
*
pb
.
RepositoryExistsResponse
,
error
)
{
func
(
s
*
GitalyTestServer
)
RepositoryExists
(
context
.
Context
,
*
pb
.
RepositoryExistsRequest
)
(
*
pb
.
RepositoryExistsResponse
,
error
)
{
return
nil
,
nil
return
nil
,
nil
}
}
...
@@ -408,6 +432,10 @@ func (s *GitalyTestServer) Cleanup(context.Context, *pb.CleanupRequest) (*pb.Cle
...
@@ -408,6 +432,10 @@ func (s *GitalyTestServer) Cleanup(context.Context, *pb.CleanupRequest) (*pb.Cle
return
nil
,
nil
return
nil
,
nil
}
}
func
(
s
*
GitalyTestServer
)
CreateRepositoryFromSnapshot
(
context
.
Context
,
*
pb
.
CreateRepositoryFromSnapshotRequest
)
(
*
pb
.
CreateRepositoryFromSnapshotResponse
,
error
)
{
return
nil
,
nil
}
// sendBytes returns the number of times the 'sender' function was called and an error.
// sendBytes returns the number of times the 'sender' function was called and an error.
func
sendBytes
(
data
[]
byte
,
chunkSize
int
,
sender
func
([]
byte
)
error
)
(
int
,
error
)
{
func
sendBytes
(
data
[]
byte
,
chunkSize
int
,
sender
func
([]
byte
)
error
)
(
int
,
error
)
{
i
:=
0
i
:=
0
...
...
internal/upstream/routes.go
View file @
b0798c9b
...
@@ -140,6 +140,7 @@ func (u *Upstream) configureRoutes() {
...
@@ -140,6 +140,7 @@ func (u *Upstream) configureRoutes() {
git
.
SendBlob
,
git
.
SendBlob
,
git
.
SendDiff
,
git
.
SendDiff
,
git
.
SendPatch
,
git
.
SendPatch
,
git
.
SendSnapshot
,
artifacts
.
SendEntry
,
artifacts
.
SendEntry
,
sendurl
.
SendURL
,
sendurl
.
SendURL
,
)
)
...
...
vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION
View file @
b0798c9b
0.9
5
.0
0.9
6
.0
vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go
View file @
b0798c9b
...
@@ -219,6 +219,10 @@ It has these top-level messages:
...
@@ -219,6 +219,10 @@ It has these top-level messages:
GetInfoAttributesResponse
GetInfoAttributesResponse
CalculateChecksumRequest
CalculateChecksumRequest
CalculateChecksumResponse
CalculateChecksumResponse
GetSnapshotRequest
GetSnapshotResponse
CreateRepositoryFromSnapshotRequest
CreateRepositoryFromSnapshotResponse
ServerInfoRequest
ServerInfoRequest
ServerInfoResponse
ServerInfoResponse
Repository
Repository
...
...
vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go
View file @
b0798c9b
...
@@ -1003,6 +1003,82 @@ func (m *CalculateChecksumResponse) GetChecksum() string {
...
@@ -1003,6 +1003,82 @@ func (m *CalculateChecksumResponse) GetChecksum() string {
return
""
return
""
}
}
type
GetSnapshotRequest
struct
{
Repository
*
Repository
`protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
}
func
(
m
*
GetSnapshotRequest
)
Reset
()
{
*
m
=
GetSnapshotRequest
{}
}
func
(
m
*
GetSnapshotRequest
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GetSnapshotRequest
)
ProtoMessage
()
{}
func
(
*
GetSnapshotRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor10
,
[]
int
{
50
}
}
func
(
m
*
GetSnapshotRequest
)
GetRepository
()
*
Repository
{
if
m
!=
nil
{
return
m
.
Repository
}
return
nil
}
type
GetSnapshotResponse
struct
{
Data
[]
byte
`protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}
func
(
m
*
GetSnapshotResponse
)
Reset
()
{
*
m
=
GetSnapshotResponse
{}
}
func
(
m
*
GetSnapshotResponse
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
GetSnapshotResponse
)
ProtoMessage
()
{}
func
(
*
GetSnapshotResponse
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor10
,
[]
int
{
51
}
}
func
(
m
*
GetSnapshotResponse
)
GetData
()
[]
byte
{
if
m
!=
nil
{
return
m
.
Data
}
return
nil
}
type
CreateRepositoryFromSnapshotRequest
struct
{
Repository
*
Repository
`protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
HttpUrl
string
`protobuf:"bytes,2,opt,name=http_url,json=httpUrl" json:"http_url,omitempty"`
HttpAuth
string
`protobuf:"bytes,3,opt,name=http_auth,json=httpAuth" json:"http_auth,omitempty"`
}
func
(
m
*
CreateRepositoryFromSnapshotRequest
)
Reset
()
{
*
m
=
CreateRepositoryFromSnapshotRequest
{}
}
func
(
m
*
CreateRepositoryFromSnapshotRequest
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CreateRepositoryFromSnapshotRequest
)
ProtoMessage
()
{}
func
(
*
CreateRepositoryFromSnapshotRequest
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor10
,
[]
int
{
52
}
}
func
(
m
*
CreateRepositoryFromSnapshotRequest
)
GetRepository
()
*
Repository
{
if
m
!=
nil
{
return
m
.
Repository
}
return
nil
}
func
(
m
*
CreateRepositoryFromSnapshotRequest
)
GetHttpUrl
()
string
{
if
m
!=
nil
{
return
m
.
HttpUrl
}
return
""
}
func
(
m
*
CreateRepositoryFromSnapshotRequest
)
GetHttpAuth
()
string
{
if
m
!=
nil
{
return
m
.
HttpAuth
}
return
""
}
type
CreateRepositoryFromSnapshotResponse
struct
{
}
func
(
m
*
CreateRepositoryFromSnapshotResponse
)
Reset
()
{
*
m
=
CreateRepositoryFromSnapshotResponse
{}
}
func
(
m
*
CreateRepositoryFromSnapshotResponse
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CreateRepositoryFromSnapshotResponse
)
ProtoMessage
()
{}
func
(
*
CreateRepositoryFromSnapshotResponse
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor10
,
[]
int
{
53
}
}
func
init
()
{
func
init
()
{
proto
.
RegisterType
((
*
RepositoryExistsRequest
)(
nil
),
"gitaly.RepositoryExistsRequest"
)
proto
.
RegisterType
((
*
RepositoryExistsRequest
)(
nil
),
"gitaly.RepositoryExistsRequest"
)
proto
.
RegisterType
((
*
RepositoryExistsResponse
)(
nil
),
"gitaly.RepositoryExistsResponse"
)
proto
.
RegisterType
((
*
RepositoryExistsResponse
)(
nil
),
"gitaly.RepositoryExistsResponse"
)
...
@@ -1054,6 +1130,10 @@ func init() {
...
@@ -1054,6 +1130,10 @@ func init() {
proto
.
RegisterType
((
*
GetInfoAttributesResponse
)(
nil
),
"gitaly.GetInfoAttributesResponse"
)
proto
.
RegisterType
((
*
GetInfoAttributesResponse
)(
nil
),
"gitaly.GetInfoAttributesResponse"
)
proto
.
RegisterType
((
*
CalculateChecksumRequest
)(
nil
),
"gitaly.CalculateChecksumRequest"
)
proto
.
RegisterType
((
*
CalculateChecksumRequest
)(
nil
),
"gitaly.CalculateChecksumRequest"
)
proto
.
RegisterType
((
*
CalculateChecksumResponse
)(
nil
),
"gitaly.CalculateChecksumResponse"
)
proto
.
RegisterType
((
*
CalculateChecksumResponse
)(
nil
),
"gitaly.CalculateChecksumResponse"
)
proto
.
RegisterType
((
*
GetSnapshotRequest
)(
nil
),
"gitaly.GetSnapshotRequest"
)
proto
.
RegisterType
((
*
GetSnapshotResponse
)(
nil
),
"gitaly.GetSnapshotResponse"
)
proto
.
RegisterType
((
*
CreateRepositoryFromSnapshotRequest
)(
nil
),
"gitaly.CreateRepositoryFromSnapshotRequest"
)
proto
.
RegisterType
((
*
CreateRepositoryFromSnapshotResponse
)(
nil
),
"gitaly.CreateRepositoryFromSnapshotResponse"
)
proto
.
RegisterEnum
(
"gitaly.GetArchiveRequest_Format"
,
GetArchiveRequest_Format_name
,
GetArchiveRequest_Format_value
)
proto
.
RegisterEnum
(
"gitaly.GetArchiveRequest_Format"
,
GetArchiveRequest_Format_name
,
GetArchiveRequest_Format_value
)
}
}
...
@@ -1093,6 +1173,8 @@ type RepositoryServiceClient interface {
...
@@ -1093,6 +1173,8 @@ type RepositoryServiceClient interface {
GetInfoAttributes
(
ctx
context
.
Context
,
in
*
GetInfoAttributesRequest
,
opts
...
grpc
.
CallOption
)
(
RepositoryService_GetInfoAttributesClient
,
error
)
GetInfoAttributes
(
ctx
context
.
Context
,
in
*
GetInfoAttributesRequest
,
opts
...
grpc
.
CallOption
)
(
RepositoryService_GetInfoAttributesClient
,
error
)
CalculateChecksum
(
ctx
context
.
Context
,
in
*
CalculateChecksumRequest
,
opts
...
grpc
.
CallOption
)
(
*
CalculateChecksumResponse
,
error
)
CalculateChecksum
(
ctx
context
.
Context
,
in
*
CalculateChecksumRequest
,
opts
...
grpc
.
CallOption
)
(
*
CalculateChecksumResponse
,
error
)
Cleanup
(
ctx
context
.
Context
,
in
*
CleanupRequest
,
opts
...
grpc
.
CallOption
)
(
*
CleanupResponse
,
error
)
Cleanup
(
ctx
context
.
Context
,
in
*
CleanupRequest
,
opts
...
grpc
.
CallOption
)
(
*
CleanupResponse
,
error
)
GetSnapshot
(
ctx
context
.
Context
,
in
*
GetSnapshotRequest
,
opts
...
grpc
.
CallOption
)
(
RepositoryService_GetSnapshotClient
,
error
)
CreateRepositoryFromSnapshot
(
ctx
context
.
Context
,
in
*
CreateRepositoryFromSnapshotRequest
,
opts
...
grpc
.
CallOption
)
(
*
CreateRepositoryFromSnapshotResponse
,
error
)
}
}
type
repositoryServiceClient
struct
{
type
repositoryServiceClient
struct
{
...
@@ -1422,6 +1504,47 @@ func (c *repositoryServiceClient) Cleanup(ctx context.Context, in *CleanupReques
...
@@ -1422,6 +1504,47 @@ func (c *repositoryServiceClient) Cleanup(ctx context.Context, in *CleanupReques
return
out
,
nil
return
out
,
nil
}
}
func
(
c
*
repositoryServiceClient
)
GetSnapshot
(
ctx
context
.
Context
,
in
*
GetSnapshotRequest
,
opts
...
grpc
.
CallOption
)
(
RepositoryService_GetSnapshotClient
,
error
)
{
stream
,
err
:=
grpc
.
NewClientStream
(
ctx
,
&
_RepositoryService_serviceDesc
.
Streams
[
4
],
c
.
cc
,
"/gitaly.RepositoryService/GetSnapshot"
,
opts
...
)
if
err
!=
nil
{
return
nil
,
err
}
x
:=
&
repositoryServiceGetSnapshotClient
{
stream
}
if
err
:=
x
.
ClientStream
.
SendMsg
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
err
:=
x
.
ClientStream
.
CloseSend
();
err
!=
nil
{
return
nil
,
err
}
return
x
,
nil
}
type
RepositoryService_GetSnapshotClient
interface
{
Recv
()
(
*
GetSnapshotResponse
,
error
)
grpc
.
ClientStream
}
type
repositoryServiceGetSnapshotClient
struct
{
grpc
.
ClientStream
}
func
(
x
*
repositoryServiceGetSnapshotClient
)
Recv
()
(
*
GetSnapshotResponse
,
error
)
{
m
:=
new
(
GetSnapshotResponse
)
if
err
:=
x
.
ClientStream
.
RecvMsg
(
m
);
err
!=
nil
{
return
nil
,
err
}
return
m
,
nil
}
func
(
c
*
repositoryServiceClient
)
CreateRepositoryFromSnapshot
(
ctx
context
.
Context
,
in
*
CreateRepositoryFromSnapshotRequest
,
opts
...
grpc
.
CallOption
)
(
*
CreateRepositoryFromSnapshotResponse
,
error
)
{
out
:=
new
(
CreateRepositoryFromSnapshotResponse
)
err
:=
grpc
.
Invoke
(
ctx
,
"/gitaly.RepositoryService/CreateRepositoryFromSnapshot"
,
in
,
out
,
c
.
cc
,
opts
...
)
if
err
!=
nil
{
return
nil
,
err
}
return
out
,
nil
}
// Server API for RepositoryService service
// Server API for RepositoryService service
type
RepositoryServiceServer
interface
{
type
RepositoryServiceServer
interface
{
...
@@ -1450,6 +1573,8 @@ type RepositoryServiceServer interface {
...
@@ -1450,6 +1573,8 @@ type RepositoryServiceServer interface {
GetInfoAttributes
(
*
GetInfoAttributesRequest
,
RepositoryService_GetInfoAttributesServer
)
error
GetInfoAttributes
(
*
GetInfoAttributesRequest
,
RepositoryService_GetInfoAttributesServer
)
error
CalculateChecksum
(
context
.
Context
,
*
CalculateChecksumRequest
)
(
*
CalculateChecksumResponse
,
error
)
CalculateChecksum
(
context
.
Context
,
*
CalculateChecksumRequest
)
(
*
CalculateChecksumResponse
,
error
)
Cleanup
(
context
.
Context
,
*
CleanupRequest
)
(
*
CleanupResponse
,
error
)
Cleanup
(
context
.
Context
,
*
CleanupRequest
)
(
*
CleanupResponse
,
error
)
GetSnapshot
(
*
GetSnapshotRequest
,
RepositoryService_GetSnapshotServer
)
error
CreateRepositoryFromSnapshot
(
context
.
Context
,
*
CreateRepositoryFromSnapshotRequest
)
(
*
CreateRepositoryFromSnapshotResponse
,
error
)
}
}
func
RegisterRepositoryServiceServer
(
s
*
grpc
.
Server
,
srv
RepositoryServiceServer
)
{
func
RegisterRepositoryServiceServer
(
s
*
grpc
.
Server
,
srv
RepositoryServiceServer
)
{
...
@@ -1923,6 +2048,45 @@ func _RepositoryService_Cleanup_Handler(srv interface{}, ctx context.Context, de
...
@@ -1923,6 +2048,45 @@ func _RepositoryService_Cleanup_Handler(srv interface{}, ctx context.Context, de
return
interceptor
(
ctx
,
in
,
info
,
handler
)
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
}
func
_RepositoryService_GetSnapshot_Handler
(
srv
interface
{},
stream
grpc
.
ServerStream
)
error
{
m
:=
new
(
GetSnapshotRequest
)
if
err
:=
stream
.
RecvMsg
(
m
);
err
!=
nil
{
return
err
}
return
srv
.
(
RepositoryServiceServer
)
.
GetSnapshot
(
m
,
&
repositoryServiceGetSnapshotServer
{
stream
})
}
type
RepositoryService_GetSnapshotServer
interface
{
Send
(
*
GetSnapshotResponse
)
error
grpc
.
ServerStream
}
type
repositoryServiceGetSnapshotServer
struct
{
grpc
.
ServerStream
}
func
(
x
*
repositoryServiceGetSnapshotServer
)
Send
(
m
*
GetSnapshotResponse
)
error
{
return
x
.
ServerStream
.
SendMsg
(
m
)
}
func
_RepositoryService_CreateRepositoryFromSnapshot_Handler
(
srv
interface
{},
ctx
context
.
Context
,
dec
func
(
interface
{})
error
,
interceptor
grpc
.
UnaryServerInterceptor
)
(
interface
{},
error
)
{
in
:=
new
(
CreateRepositoryFromSnapshotRequest
)
if
err
:=
dec
(
in
);
err
!=
nil
{
return
nil
,
err
}
if
interceptor
==
nil
{
return
srv
.
(
RepositoryServiceServer
)
.
CreateRepositoryFromSnapshot
(
ctx
,
in
)
}
info
:=
&
grpc
.
UnaryServerInfo
{
Server
:
srv
,
FullMethod
:
"/gitaly.RepositoryService/CreateRepositoryFromSnapshot"
,
}
handler
:=
func
(
ctx
context
.
Context
,
req
interface
{})
(
interface
{},
error
)
{
return
srv
.
(
RepositoryServiceServer
)
.
CreateRepositoryFromSnapshot
(
ctx
,
req
.
(
*
CreateRepositoryFromSnapshotRequest
))
}
return
interceptor
(
ctx
,
in
,
info
,
handler
)
}
var
_RepositoryService_serviceDesc
=
grpc
.
ServiceDesc
{
var
_RepositoryService_serviceDesc
=
grpc
.
ServiceDesc
{
ServiceName
:
"gitaly.RepositoryService"
,
ServiceName
:
"gitaly.RepositoryService"
,
HandlerType
:
(
*
RepositoryServiceServer
)(
nil
),
HandlerType
:
(
*
RepositoryServiceServer
)(
nil
),
...
@@ -2011,6 +2175,10 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
...
@@ -2011,6 +2175,10 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
MethodName
:
"Cleanup"
,
MethodName
:
"Cleanup"
,
Handler
:
_RepositoryService_Cleanup_Handler
,
Handler
:
_RepositoryService_Cleanup_Handler
,
},
},
{
MethodName
:
"CreateRepositoryFromSnapshot"
,
Handler
:
_RepositoryService_CreateRepositoryFromSnapshot_Handler
,
},
},
},
Streams
:
[]
grpc
.
StreamDesc
{
Streams
:
[]
grpc
.
StreamDesc
{
{
{
...
@@ -2033,6 +2201,11 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
...
@@ -2033,6 +2201,11 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
Handler
:
_RepositoryService_GetInfoAttributes_Handler
,
Handler
:
_RepositoryService_GetInfoAttributes_Handler
,
ServerStreams
:
true
,
ServerStreams
:
true
,
},
},
{
StreamName
:
"GetSnapshot"
,
Handler
:
_RepositoryService_GetSnapshot_Handler
,
ServerStreams
:
true
,
},
},
},
Metadata
:
"repository-service.proto"
,
Metadata
:
"repository-service.proto"
,
}
}
...
@@ -2040,105 +2213,112 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
...
@@ -2040,105 +2213,112 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
func
init
()
{
proto
.
RegisterFile
(
"repository-service.proto"
,
fileDescriptor10
)
}
func
init
()
{
proto
.
RegisterFile
(
"repository-service.proto"
,
fileDescriptor10
)
}
var
fileDescriptor10
=
[]
byte
{
var
fileDescriptor10
=
[]
byte
{
// 1587 bytes of a gzipped FileDescriptorProto
// 1698 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xc4
,
0x58
,
0xef
,
0x6e
,
0xdb
,
0x36
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xc4
,
0x59
,
0x5f
,
0x6f
,
0xdb
,
0xc8
,
0x10
,
0xb7
,
0xf3
,
0xd7
,
0xbe
,
0xb8
,
0xad
,
0xc3
,
0xfc
,
0x93
,
0x95
,
0xb4
,
0x49
,
0xb8
,
0x62
,
0xcb
,
0x11
,
0x97
,
0xfc
,
0x4f
,
0xd2
,
0x48
,
0x97
,
0x93
,
0xd7
,
0xff
,
0x28
,
0xda
,
0x89
,
0xed
,
0xbd
,
0xe0
,
0xda
,
0x2e
,
0x28
,
0x92
,
0x0f
,
0x1b
,
0xb0
,
0x0d
,
0x45
,
0x92
,
0x35
,
0x89
,
0xd7
,
0xa6
,
0xc8
,
0x94
,
0xea
,
0xbb
,
0xa4
,
0xc6
,
0xc1
,
0x7e
,
0x68
,
0x81
,
0xb6
,
0x38
,
0xd8
,
0x6e
,
0x6c
,
0x2b
,
0x89
,
0x03
,
0x0e
,
0x05
,
0x82
,
0x0d
,
0x86
,
0x22
,
0xd3
,
0xb6
,
0x60
,
0x59
,
0x72
,
0x49
,
0x2a
,
0x6d
,
0xfa
,
0x79
,
0x97
,
0x4e
,
0x10
,
0xc0
,
0x68
,
0x21
,
0xd0
,
0xd4
,
0x4a
,
0x24
,
0x44
,
0x91
,
0xca
,
0xee
,
0xd2
,
0x89
,
0x1f
,
0xf6
,
0x5c
,
0x7d
,
0x85
,
0x3d
,
0xc6
,
0x5e
,
0x62
,
0x10
,
0x45
,
0x89
,
0x92
,
0x25
,
0x65
,
0x05
,
0xd3
,
0xd7
,
0x3e
,
0x14
,
0xe8
,
0x53
,
0xbf
,
0x52
,
0xbf
,
0x42
,
0x3f
,
0x46
,
0xbf
,
0x44
,
0xc1
,
0xe5
,
0xd4
,
0x61
,
0xdf
,
0xc4
,
0xe3
,
0xf1
,
0x77
,
0xa7
,
0x3b
,
0xde
,
0xe9
,
0x77
,
0x02
,
0x8d
,
0x92
,
0xb1
,
0x8a
,
0x4b
,
0x8a
,
0xa4
,
0x1a
,
0x80
,
0x29
,
0xee
,
0x8d
,
0x3b
,
0xbb
,
0xfb
,
0x9b
,
0xd9
,
0x99
,
0x9d
,
0xc7
,
0x6c
,
0xee
,
0xd1
,
0x9b
,
0x6f
,
0x18
,
0xa1
,
0xd7
,
0xb6
,
0x45
,
0x76
,
0xc7
,
0xd4
,
0xe3
,
0x1e
,
0xd1
,
0x6f
,
0x56
,
0xa0
,
0x51
,
0x32
,
0xf1
,
0x99
,
0xc3
,
0x7d
,
0xfa
,
0xf0
,
0x6b
,
0x46
,
0xe8
,
0xbd
,
0x9a
,
0xeb
,
0xdb
,
0xdc
,
0x74
,
0x6e
,
0xf4
,
0x06
,
0x1b
,
0x98
,
0x94
,
0x74
,
0x43
,
0x29
,
0x3e
,
0x83
,
0x63
,
0x91
,
0xc3
,
0x09
,
0xf5
,
0xb9
,
0x8f
,
0x56
,
0x86
,
0x0e
,
0x37
,
0xdd
,
0x07
,
0xbd
,
0xc5
,
0x6c
,
0x35
,
0x23
,
0x3e
,
0xf1
,
0xfc
,
0xbd
,
0xcd
,
0x38
,
0x33
,
0xc8
,
0x5b
,
0x9f
,
0x30
,
0x8e
,
0xf6
,
0x00
,
0x93
,
0x92
,
0x7e
,
0x24
,
0xc5
,
0x57
,
0xb0
,
0x65
,
0xc4
,
0x3b
,
0x5e
,
0x7c
,
0x72
,
0x18
,
0x67
,
0x06
,
0x14
,
0x98
,
0x56
,
0xdd
,
0xaa
,
0xee
,
0x2c
,
0xec
,
0xa1
,
0xdd
,
0x10
,
0x65
,
0x57
,
0x1d
,
0x32
,
0x12
,
0xf9
,
0x10
,
0x10
,
0xc6
,
0xd1
,
0x11
,
0x80
,
0x02
,
0xd3
,
0xaa
,
0x7b
,
0xd5
,
0x83
,
0xe6
,
0x11
,
0x3a
,
0x5a
,
0x78
,
0x0f
,
0xb4
,
0x2c
,
0x1c
,
0x1b
,
0x7b
,
0x2e
,
0x23
,
0x68
,
0x15
,
0xe6
,
0x88
,
0x90
,
0x08
,
0x8c
,
0x50
,
0x0e
,
0xd5
,
0x26
,
0x23
,
0xb1
,
0x0a
,
0x1f
,
0x81
,
0x96
,
0x85
,
0x63
,
0x13
,
0xdf
,
0x63
,
0xac
,
0x9a
,
0x21
,
0x57
,
0xf8
,
0x95
,
0x38
,
0x63
,
0x5a
,
0xc3
,
0xb6
,
0x6b
,
0x51
,
0x32
,
0x22
,
0x2e
,
0x04
,
0x6d
,
0xc2
,
0x0a
,
0x11
,
0x12
,
0x81
,
0x55
,
0x37
,
0xe4
,
0x08
,
0xbf
,
0x11
,
0x7b
,
0x4c
,
0x6b
,
0x37
,
0x9d
,
0x32
,
0x3e
,
0xac
,
0x43
,
0x2b
,
0x07
,
0x2f
,
0x74
,
0x02
,
0x3b
,
0xb0
,
0x18
,
0x6e
,
0x1e
,
0xd4
,
0xf5
,
0x2c
,
0x4a
,
0xc6
,
0xc4
,
0xe3
,
0xa6
,
0x5b
,
0xc6
,
0x86
,
0x6d
,
0xe8
,
0xe4
,
0xe0
,
0x45
,
0xfb
,
0x4e
,
0x19
,
0x2b
,
0xe8
,
0x0b
,
0xb8
,
0x63
,
0x51
,
0x62
,
0x72
,
0xd2
,
0xb9
,
0xb2
,
0xf9
,
0xc8
,
0x46
,
0x60
,
0x17
,
0x56
,
0xa3
,
0xc9
,
0xf3
,
0xc0
,
0x2d
,
0xa3
,
0x05
,
0x7d
,
0x07
,
0xdf
,
0x58
,
0x94
,
0x1c
,
0x6b
,
0x53
,
0xe2
,
0xa5
,
0x1a
,
0xa1
,
0xf0
,
0x50
,
0xc8
,
0xf0
,
0x32
,
0xa0
,
0xa4
,
0x35
,
0xe9
,
0x98
,
0x9c
,
0xf4
,
0xee
,
0x1c
,
0x3e
,
0x36
,
0x27
,
0xda
,
0x82
,
0x38
,
0x54
,
0x2b
,
0x12
,
0x9e
,
0x0a
,
0xc3
,
0x18
,
0x56
,
0x4e
,
0x4c
,
0x7a
,
0x65
,
0xf6
,
0xc9
,
0x91
,
0xe7
,
0x38
,
0xc4
,
0xe2
,
0xff
,
0xb9
,
0x19
,
0x5e
,
0x07
,
0x94
,
0xd4
,
0x26
,
0x6d
,
0x98
,
0xc0
,
0xc6
,
0x85
,
0x49
,
0xef
,
0xcc
,
0x21
,
0x39
,
0x1f
,
0x1a
,
0xac
,
0x4e
,
0x5a
,
0x94
,
0xbe
,
0xfc
,
0x04
,
0x77
,
0x8f
,
0x1c
,
0x62
,
0xba
,
0xfe
,
0xb8
,
0xf3
,
0x5d
,
0x97
,
0x58
,
0xfc
,
0xff
,
0x6e
,
0x87
,
0x06
,
0x9b
,
0xb3
,
0x1a
,
0xa5
,
0x2d
,
0x7f
,
0x84
,
0x4c
,
0xc8
,
0x17
,
0xe1
,
0x5e
,
0x8c
,
0x22
,
0x81
,
0x5f
,
0xc0
,
0x8a
,
0x52
,
0xbe
,
0xb0
,
0x3f
,
0x90
,
0x47
,
0x67
,
0x2e
,
0x31
,
0xbd
,
0x60
,
0x52
,
0xc6
,
0xe5
,
0xab
,
0xf0
,
0x6d
,
0x8c
,
0x22
,
0x81
,
0x5f
,
0x32
,
0xf8
,
0x4f
,
0x60
,
0x75
,
0x12
,
0x4c
,
0x5e
,
0x2a
,
0x04
,
0x33
,
0xcc
,
0xfe
,
0x40
,
0x04
,
0xce
,
0xc1
,
0x86
,
0x5a
,
0x7c
,
0xe3
,
0x7c
,
0x26
,
0x65
,
0xf0
,
0x9f
,
0xc3
,
0xe6
,
0x2c
,
0x98
,
0xbc
,
0x54
,
0xb4
,
0x21
,
0x9e
,
0xf1
,
0x10
,
0x5a
,
0x07
,
0xe3
,
0xb1
,
0x73
,
0x73
,
0x62
,
0x73
,
0x93
,
0x73
,
0x6a
,
0x08
,
0x96
,
0x98
,
0xf3
,
0x99
,
0x08
,
0x9c
,
0x45
,
0x43
,
0x7c
,
0xe3
,
0x11
,
0x74
,
0x4e
,
0x26
,
0x13
,
0x5f
,
0xf9
,
0x9c
,
0x94
,
0xb9
,
0xd5
,
0x48
,
0x87
,
0x1a
,
0x25
,
0xd7
,
0x36
,
0xb3
,
0x3d
,
0x57
,
0x84
,
0xf7
,
0xe1
,
0xc2
,
0xe1
,
0x26
,
0xe7
,
0xd4
,
0xb9
,
0x0b
,
0x38
,
0x29
,
0x73
,
0xab
,
0x91
,
0x0e
,
0x75
,
0xb7
,
0x61
,
0xc4
,
0x6b
,
0xbc
,
0x01
,
0x7a
,
0x9e
,
0x31
,
0x19
,
0x85
,
0x3f
,
0xa6
,
0x00
,
0x1d
,
0x13
,
0x4a
,
0xee
,
0x1d
,
0xe6
,
0xf8
,
0x9e
,
0x70
,
0x6f
,
0xcb
,
0x88
,
0xc7
,
0x78
,
0x07
,
0xf4
,
0x3c
,
0x65
,
0x6e
,
0x0d
,
0x0c
,
0x32
,
0xf2
,
0x78
,
0x99
,
0x18
,
0x04
,
0xe5
,
0x43
,
0x05
,
0x88
,
0x70
,
0xa1
,
0x6e
,
0xd2
,
0x0b
,
0x7f
,
0x5b
,
0x00
,
0x74
,
0x4e
,
0xb8
,
0x65
,
0x1b
,
0x64
,
0xec
,
0xf3
,
0x32
,
0x3e
,
0x08
,
0xc8
,
0x15
,
0x5a
,
0x86
,
0xd9
,
0x9e
,
0x47
,
0x2d
,
0xa2
,
0x4d
,
0x8b
,
0xc4
,
0x87
,
0x0b
,
0xb4
,
0x06
,
0xd3
,
0x87
,
0x0a
,
0x10
,
0x61
,
0x42
,
0xc3
,
0x90
,
0x23
,
0xb4
,
0x0e
,
0xcb
,
0x03
,
0x9f
,
0x5a
,
0x44
,
0xf3
,
0xae
,
0xd7
,
0xe1
,
0x66
,
0x9f
,
0x69
,
0x33
,
0x61
,
0xb5
,
0xb9
,
0xde
,
0x6b
,
0xb3
,
0xcf
,
0x90
,
0x5b
,
0x14
,
0x81
,
0x8f
,
0x06
,
0x68
,
0x0b
,
0x6a
,
0x9e
,
0xdf
,
0xe3
,
0xe6
,
0x90
,
0x69
,
0x4b
,
0x51
,
0x06
,
0xf3
,
0xdc
,
0x1e
,
0x11
,
0xcf
,
0xe7
,
0xda
,
0xec
,
0x56
,
0x75
,
0x67
,
0xd6
,
0x88
,
0x96
,
0xc1
,
0xb6
,
0x79
,
0xfe
,
0x5b
,
0x73
,
0xc8
,
0x90
,
0x06
,
0x35
,
0xee
,
0x8c
,
0x89
,
0x1f
,
0x70
,
0x6d
,
0x79
,
0x11
,
0xc6
,
0x06
,
0x9d
,
0x21
,
0xb9
,
0xd1
,
0xe6
,
0x42
,
0x0b
,
0x8c
,
0x0d
,
0x5e
,
0x90
,
0x1b
,
0xb4
,
0xaf
,
0x7a
,
0xb0
,
0x6c
,
0x4c
,
0x87
,
0xe1
,
0x16
,
0xc6
,
0xec
,
0xde
,
0x88
,
0x3c
,
0x68
,
0x2b
,
0x91
,
0x09
,
0x0b
,
0x43
,
0xd7
,
0x7b
,
0xe7
,
0x76
,
0x06
,
0x5e
,
0x50
,
0xbd
,
0xf3
,
0x62
,
0x13
,
0x84
,
0xe8
,
0x06
,
0xc6
,
0xec
,
0x57
,
0xe4
,
0x01
,
0xed
,
0x42
,
0x73
,
0xe4
,
0xf9
,
0x1f
,
0xbd
,
0x9e
,
0xed
,
0x87
,
0x34
,
0x90
,
0xa0
,
0x16
,
0xd4
,
0x5c
,
0xaf
,
0x33
,
0xa6
,
0xbe
,
0x4b
,
0xb4
,
0xba
,
0xb0
,
0x36
,
0xef
,
0xd9
,
0x5b
,
0x13
,
0x93
,
0x20
,
0x44
,
0x97
,
0xa1
,
0x04
,
0x75
,
0xa0
,
0xee
,
0xf9
,
0xbd
,
0x09
,
0x0d
,
0x7a
,
0xe7
,
0xc1
,
0xf2
,
0xe7
,
0x99
,
0x5a
,
0xad
,
0x59
,
0xc7
,
0x2b
,
0xb0
,
0x94
,
0x8a
,
0x82
,
0x8c
,
0x3c
,
0xa2
,
0x35
,
0x84
,
0xb6
,
0x9a
,
0xe7
,
0x5f
,
0x87
,
0xc3
,
0x97
,
0x4b
,
0xf5
,
0x7a
,
0xbb
,
0x81
,
0xce
,
0x19
,
0xac
,
0x1d
,
0x89
,
0x6b
,
0x9a
,
0x78
,
0xe5
,
0x12
,
0xb7
,
0x44
,
0x07
,
0x2d
,
0x0b
,
0x27
,
0x37
,
0x60
,
0x2d
,
0xe5
,
0x05
,
0xe9
,
0x9d
,
0x2b
,
0xd8
,
0x3a
,
0x13
,
0xd7
,
0x34
,
0x71
,
0xe4
,
0x12
,
0x4d
,
0xfd
,
0x5d
,
0x85
,
0xc5
,
0x13
,
0xc2
,
0x0f
,
0xa8
,
0x35
,
0xb0
,
0xaf
,
0x4b
,
0xe5
,
0x61
,
0x1d
,
0xb7
,
0x44
,
0x07
,
0x2d
,
0x0b
,
0x27
,
0x55
,
0xfd
,
0xa7
,
0x0a
,
0xab
,
0x17
,
0x84
,
0x9f
,
0x50
,
0xcb
,
0xea
,
0x96
,
0x37
,
0x1a
,
0xd9
,
0xbc
,
0x63
,
0x77
,
0x65
,
0x2a
,
0x6a
,
0xa1
,
0xa0
,
0xdd
,
0x0d
,
0x92
,
0x76
,
0xee
,
0x4b
,
0xc5
,
0x61
,
0x1b
,
0x1a
,
0x96
,
0x3f
,
0x1e
,
0x3b
,
0xbc
,
0xe7
,
0xf4
,
0x65
,
0x28
,
0x34
,
0xa6
,
0xa4
,
0x67
,
0xbf
,
0x17
,
0xd9
,
0xa8
,
0x1b
,
0x72
,
0x85
,
0xbe
,
0x83
,
0xb9
,
0x9e
,
0x47
,
0xea
,
0x91
,
0xa0
,
0xdb
,
0x0f
,
0x83
,
0x34
,
0xa1
,
0x64
,
0xe0
,
0x7c
,
0x12
,
0xd1
,
0x68
,
0x18
,
0x72
,
0x47
,
0x26
,
0x17
,
0xd9
,
0xb8
,
0xbb
,
0xb7
,
0x15
,
0x19
,
0xc9
,
0xf8
,
0xb4
,
0x7b
,
0x2c
,
0xf4
,
0x0c
,
0x84
,
0x7e
,
0x0b
,
0x2b
,
0x03
,
0x9f
,
0x8e
,
0x4d
,
0x2e
,
0xa2
,
0xf1
,
0xe8
,
0x68
,
0x6f
,
0xaa
,
0x24
,
0xa9
,
0x8f
,
0xf7
,
0x61
,
0x2e
,
0x94
,
0xa0
,
0x79
,
0x98
,
0xbe
,
0x6c
,
0x9f
,
0x37
,
0x2b
,
0xc1
,
0xc3
,
0x63
,
0xd3
,
0xe1
,
0xb9
,
0x58
,
0x67
,
0xc8
,
0xf5
,
0xf8
,
0x18
,
0x56
,
0x22
,
0x09
,
0xaa
,
0xc1
,
0xe2
,
0xeb
,
0x03
,
0xa3
,
0x59
,
0x45
,
0x00
,
0x73
,
0xaf
,
0x0f
,
0x8c
,
0xce
,
0xc9
,
0x65
,
0x73
,
0x0a
,
0x2d
,
0x6d
,
0xf7
,
0xba
,
0x5d
,
0x09
,
0x3f
,
0xde
,
0x9e
,
0x18
,
0xed
,
0x2a
,
0x02
,
0x58
,
0x79
,
0x7b
,
0x62
,
0xc0
,
0x7c
,
0xf0
,
0x7c
,
0x78
,
0xb9
,
0xd7
,
0x9c
,
0xc6
,
0x3b
,
0x80
,
0x92
,
0xc0
,
0xaa
,
0x56
,
0xba
,
0xf4
,
0x2e
,
0x6e
,
0xdb
,
0x0b
,
0xa8
,
0x09
,
0xb5
,
0xf0
,
0xfb
,
0xf4
,
0xf6
,
0xa8
,
0xbd
,
0x88
,
0x0f
,
0x26
,
0x37
,
0xc5
,
0x7b
,
0x36
,
0x0c
,
0xf1
,
0x1c
,
0xa4
,
0xe0
,
0xd4
,
0x64
,
0x2f
,
0x3d
,
0xcb
,
0x74
,
0x00
,
0x25
,
0x81
,
0x55
,
0xae
,
0xf4
,
0x4d
,
0x6e
,
0x8a
,
0x73
,
0xb6
,
0x0c
,
0xf1
,
0x1d
,
0x86
,
0xe0
,
0x0e
,
0xa9
,
0xe9
,
0x5a
,
0x83
,
0x52
,
0x95
,
0x82
,
0x9f
,
0x82
,
0x96
,
0x85
,
0x93
,
0xe6
,
0x97
,
0x61
,
0xd2
,
0x64
,
0xaf
,
0x7d
,
0xcb
,
0x74
,
0x4f
,
0xa9
,
0xe9
,
0x59
,
0x76
,
0xa9
,
0x4c
,
0xc1
,
0x3f
,
0x81
,
0xf6
,
0xda
,
0x74
,
0x7c
,
0x22
,
0xdb
,
0x7f
,
0xb8
,
0xc0
,
0x7f
,
0x55
,
0x41
,
0x13
,
0x77
,
0xe3
,
0xc2
,
0x96
,
0x85
,
0x93
,
0xea
,
0xd7
,
0x61
,
0xf9
,
0xde
,
0x74
,
0x03
,
0x22
,
0xcb
,
0x7f
,
0x34
,
0xc0
,
0xff
,
0xf3
,
0xa9
,
0x45
,
0xc2
,
0x53
,
0x65
,
0xf2
,
0xf3
,
0x0c
,
0x16
,
0x99
,
0x80
,
0xea
,
0x24
,
0x8e
,
0x4e
,
0xae
,
0x82
,
0x26
,
0xee
,
0xc6
,
0x8d
,
0x1f
,
0x50
,
0x8b
,
0x44
,
0xbb
,
0xca
,
0xc4
,
0xe7
,
0x67
,
0x58
,
0x15
,
0x1e
,
0x6d
,
0x86
,
0xca
,
0x46
,
0xaa
,
0xa3
,
0x4a
,
0x80
,
0x2b
,
0xe1
,
0x8c
,
0x48
,
0x65
,
0xc3
,
0x65
,
0x02
,
0xaa
,
0x97
,
0xd8
,
0xba
,
0x50
,
0xb8
,
0xb5
,
0x1d
,
0x2d
,
0x36
,
0x52
,
0x15
,
0x55
,
0x02
,
0x68
,
0xb0
,
0x84
,
0x83
,
0xe8
,
0x3e
,
0x00
,
0x37
,
0x69
,
0x9f
,
0xf0
,
0x0e
,
0x25
,
0x3d
,
0x91
,
0xd4
,
0xdc
,
0x09
,
0x63
,
0x44
,
0x28
,
0x5b
,
0x46
,
0x8b
,
0x25
,
0x0c
,
0x44
,
0x8f
,
0x01
,
0xb8
,
0x49
,
0x87
,
0x86
,
0x51
,
0x0f
,
0x25
,
0x06
,
0xe9
,
0xe1
,
0x7d
,
0x68
,
0xe5
,
0xbc
,
0x94
,
0xfa
,
0x10
,
0x52
,
0xc2
,
0x84
,
0xf7
,
0x28
,
0x19
,
0x88
,
0xa0
,
0xb6
,
0x8c
,
0x46
,
0x24
,
0x31
,
0xc8
,
0x00
,
0x1f
,
0x43
,
0x27
,
0x7c
,
0x87
,
0x47
,
0x1f
,
0xc2
,
0x70
,
0x85
,
0x0f
,
0x60
,
0xe1
,
0x98
,
0x59
,
0xc3
,
0x32
,
0xf1
,
0x7f
,
0xe7
,
0x50
,
0xea
,
0x87
,
0x90
,
0x12
,
0x16
,
0xb8
,
0x7c
,
0xfa
,
0x43
,
0x18
,
0x8d
,
0xf0
,
0x09
,
0x34
,
0x08
,
0x8d
,
0x10
,
0x42
,
0xc5
,
0x9c
,
0x50
,
0xea
,
0x51
,
0x99
,
0xf3
,
0x70
,
0x81
,
0x3f
,
0x56
,
0xe1
,
0xcf
,
0x99
,
0x35
,
0x2a
,
0xe3
,
0xff
,
0xa7
,
0xd0
,
0x8a
,
0x20
,
0x94
,
0xcf
,
0x09
,
0xa5
,
0x3e
,
0x95
,
0xde
,
0x1b
,
0x6a
,
0x07
,
0x85
,
0xd2
,
0x2b
,
0x13
,
0xea
,
0x26
,
0x4c
,
0x07
,
0x6f
,
0x1f
,
0xb6
,
0xc4
,
0x31
,
0x8f
,
0x06
,
0xf8
,
0x5f
,
0x55
,
0xf8
,
0xf6
,
0x3d
,
0x75
,
0xc2
,
0x44
,
0x19
,
0x94
,
0x71
,
0x75
,
0xe0
,
0x31
,
0xd5
,
0x29
,
0xa7
,
0xd3
,
0x9d
,
0x12
,
0x6d
,
0x43
,
0xc3
,
0x73
,
0xba
,
0x9d
,
0x78
,
0x3f
,
0x1b
,
0x16
,
0xc3
,
0xd3
,
0x47
,
0x25
,
0x31
,
0xfc
,
0x4c
,
0x55
,
0xca
,
0xc5
,
0x74
,
0xa5
,
0x44
,
0xfb
,
0x0c
,
0xda
,
0x82
,
0xe7
,
0x74
,
0x8d
,
0x48
,
0x25
,
0xee
,
0x65
,
0xb3
,
0xc9
,
0x5e
,
0xb6
,
0x0c
,
0xb3
,
0xd0
,
0xf2
,
0xdd
,
0x7e
,
0x2f
,
0x9e
,
0x8f
,
0x9c
,
0xd6
,
0xf4
,
0xdd
,
0xbe
,
0x31
,
0x5d
,
0x12
,
0xd7
,
0x6c
,
0x40
,
0x1c
,
0x47
,
0xb4
,
0xa5
,
0x9a
,
0x11
,
0x2e
,
0xf0
,
0x0e
,
0x34
,
0xd5
,
0x3b
,
0xdc
,
0xfa
,
0xb2
,
0xe5
,
0x64
,
0x2d
,
0x5b
,
0x87
,
0x65
,
0x66
,
0x13
,
0xd7
,
0x15
,
0x65
,
0xa9
,
0x6e
,
0x44
,
0x03
,
0xba
,
0x03
,
0x58
,
0x3e
,
0xb6
,
0xdd
,
0xee
,
0x19
,
0xa1
,
0x7d
,
0x72
,
0x68
,
0xb2
,
0x52
,
0xd5
,
0xbf
,
0x7c
,
0x00
,
0x6d
,
0x75
,
0x86
,
0xb9
,
0xc7
,
0xb5
,
0x61
,
0xfd
,
0xdc
,
0xf1
,
0xfa
,
0x57
,
0x84
,
0x0e
,
0x01
,
0xf5
,
0xe8
,
0x05
,
0x98
,
0x36
,
0xb5
,
0x35
,
0x1d
,
0xa4
,
0x3d
,
0x16
,
0xe0
,
0xc7
,
0xb0
,
0x32
,
0xc9
,
0xa9
,
0xc9
,
0x4a
,
0x65
,
0xff
,
0x0e
,
0x34
,
0xa6
,
0x07
,
0x60
,
0xda
,
0xc2
,
0xde
,
0x62
,
0x18
,
0x61
,
0x49
,
0x95
,
0xde
,
0x95
,
0xc9
,
0xc2
,
0xab
,
0x5f
,
0x37
,
0xc4
,
0x33
,
0xfe
,
0xb3
,
0x0a
,
0x8b
,
0xf6
,
0x58
,
0x80
,
0x9f
,
0xc1
,
0xc6
,
0x8c
,
0x26
,
0x95
,
0x7a
,
0x77
,
0x26
,
0x8b
,
0xae
,
0x7e
,
0xc3
,
0x61
,
0xbf
,
0x3a
,
0xf6
,
0xe8
,
0xf0
,
0xff
,
0xbc
,
0xf2
,
0x01
,
0x4f
,
0x49
,
0x7a
,
0x12
,
0x73
,
0xa5
,
0x10
,
0xdf
,
0xf8
,
0xef
,
0x55
,
0x58
,
0x8d
,
0xea
,
0xd5
,
0xb9
,
0x4f
,
0x47
,
0xbf
,
0xe4
,
0x95
,
0x0f
,
0x56
,
0x9b
,
0x19
,
0x24
,
0x70
,
0xb6
,
0xed
,
0x9e
,
0x53
,
0xaf
,
0x4f
,
0x09
,
0x63
,
0x25
,
0x5b
,
0x27
,
0x79
,
0x4a
,
0xd2
,
0x92
,
0x98
,
0x2b
,
0x75
,
0xba
,
0xcc
,
0x20
,
0xa1
,
0xb1
,
0x5d
,
0xef
,
0x9a
,
0xfa
,
0x15
,
0x70
,
0x89
,
0xd6
,
0x19
,
0x0a
,
0xda
,
0x5d
,
0xfc
,
0x23
,
0xe8
,
0x79
,
0xd6
,
0x64
,
0x00
,
0x37
,
0x43
,
0x4a
,
0x18
,
0x2b
,
0x59
,
0x3a
,
0xa9
,
0x80
,
0x4b
,
0x94
,
0xce
,
0x48
,
0xd0
,
0xed
,
0xe3
,
0x3f
,
0x61
,
0xc1
,
0x76
,
0x3b
,
0x63
,
0x29
,
0x96
,
0x85
,
0x03
,
0x76
,
0xac
,
0x18
,
0x3a
,
0x7b
,
0xf1
,
0xd6
,
0x80
,
0x9e
,
0xa7
,
0x4d
,
0x3a
,
0x70
,
0x17
,
0x9a
,
0x8e
,
0xd7
,
0x9b
,
0x48
,
0xb1
,
0x4c
,
0x1c
,
0x70
,
0x37
,
0xd9
,
0xe0
,
0xb3
,
0x39
,
0xcb
,
0x04
,
0x5c
,
0xc2
,
0xd9
,
0x50
,
0x10
,
0x39
,
0x9b
,
0xb5
,
0xf6
,
0xe2
,
0x85
,
0x91
,
0xb1
,
0x37
,
0x1f
,
0x02
,
0x93
,
0xd9
,
0x5f
,
0xcd
,
0x58
,
0x26
,
0xe0
,
0x12
,
0xc6
,
0xa9
,
0xce
,
0xf6
,
0xe0
,
0xc1
,
0xe4
,
0x97
,
0xea
,
0x98
,
0x7a
,
0xa3
,
0x5f
,
0x8d
,
0x97
,
0x25
,
0xcb
,
0x46
,
0x82
,
0xa9
,
0xb1
,
0x59
,
0x6d
,
0x5f
,
0x6a
,
0xec
,
0x00
,
0x9e
,
0xcc
,
0xfe
,
0x52
,
0x9d
,
0x53
,
0xd1
,
0xa7
,
0x8e
,
0xf4
,
0x35
,
0x78
,
0xc4
,
0xdb
,
0xb0
,
0x59
,
0x68
,
0x47
,
0x26
,
0xb9
,
0x0d
,
0x4b
,
0x7f
,
0xfc
,
0xce
,
0x78
,
0x5d
,
0x32
,
0x1d
,
0x03
,
0xea
,
0x4a
,
0x5b
,
0xc3
,
0x4f
,
0xbc
,
0x0f
,
0xbb
,
0xa1
,
0xca
,
0xa1
,
0xef
,
0x76
,
0x9d
,
0x52
,
0x2c
,
0xed
,
0x11
,
0x2c
,
0xa7
,
0xa1
,
0x6e
,
0xf9
,
0xee
,
0x85
,
0x7a
,
0x64
,
0x90
,
0xbb
,
0xb0
,
0x16
,
0x2d
,
0x39
,
0x0d
,
0xbc
,
0xbe
,
0x5b
,
0x8a
,
0xa5
,
0xfd
,
0x10
,
0x40
,
0xa2
,
0x7a
,
0x8f
,
0x3c
,
0xb7
,
0x67
,
0xf7
,
0x4b
,
0xe6
,
0xa9
,
0xe7
,
0x3b
,
0x4e
,
0x67
,
0x08
,
0xeb
,
0x69
,
0xa8
,
0x39
,
0xbf
,
0x3b
,
0x04
,
0x90
,
0xc8
,
0xde
,
0x33
,
0xdf
,
0x1b
,
0x38
,
0xc3
,
0x6c
,
0xf2
,
0x41
,
0x94
,
0xa7
,
0x40
,
0x70
,
0x6e
,
0xf2
,
0x01
,
0x7e
,
0x0c
,
0x4b
,
0x29
,
0x33
,
0xb7
,
0x92
,
0x71
,
0x1a
,
0x04
,
0xae
,
0xdb
,
0x9b
,
0x98
,
0xdc
,
0x9e
,
0xc6
,
0x29
,
0x14
,
0x5c
,
0x9b
,
0xdc
,
0xf6
,
0x89
,
0x21
,
0x6c
,
0xe7
,
0x45
,
0xab
,
0x74
,
0x60
,
0xe2
,
0x00
,
0x4c
,
0x25
,
0x02
,
0xf0
,
0x10
,
0xc6
,
0xcf
,
0x60
,
0x2d
,
0xa5
,
0x66
,
0x6e
,
0x9d
,
0x18
,
0xc1
,
0x7e
,
0x9e
,
0xb7
,
0x4a
,
0x3b
,
0x26
,
0xf0
,
0x6d
,
0xc6
,
0x64
,
0x76
,
0x4e
,
0x01
,
0x05
,
0x0d
,
0xe5
,
0xa5
,
0x6d
,
0x11
,
0xb7
,
0x54
,
0xe3
,
0x76
,
0xc0
,
0x42
,
0xc2
,
0x01
,
0x4f
,
0x01
,
0xcf
,
0x53
,
0x26
,
0xa3
,
0x73
,
0x09
,
0x28
,
0x2c
,
0x28
,
0xc2
,
0x47
,
0xb0
,
0x94
,
0x42
,
0x92
,
0x91
,
0x78
,
0x02
,
0xc8
,
0x09
,
0x45
,
0x1d
,
0x36
,
0xf0
,
0x28
,
0xaf
,
0x1d
,
0x8b
,
0x78
,
0xa5
,
0x0a
,
0x17
,
0x3e
,
0x83
,
0xb5
,
0x14
,
0x92
,
0xf4
,
0xc4
,
0x73
,
0x40
,
0xef
,
0xb8
,
0xe6
,
0x28
,
0x6a
,
0x53
,
0x4d
,
0xb9
,
0x73
,
0x11
,
0x6c
,
0xbc
,
0x32
,
0x47
,
0x24
,
0x18
,
0x6e
,
0x24
,
0xea
,
0x31
,
0xdb
,
0xa7
,
0xbc
,
0xe7
,
0x99
,
0xe3
,
0x69
,
0x99
,
0x6a
,
0xcb
,
0x99
,
0x9b
,
0xd5
,
0x4e
,
0x08
,
0x6f
,
0xbb
,
0x3d
,
0xef
,
0xe0
,
0x73
,
0x10
,
0x6b
,
0xfc
,
0x3d
,
0xb4
,
0x72
,
0xf0
,
0x70
,
0xe2
,
0x8d
,
0x39
,
0x26
,
0x61
,
0xab
,
0x76
,
0x41
,
0x78
,
0xd7
,
0x1b
,
0xf8
,
0x27
,
0x5f
,
0x83
,
0xa4
,
0x6b
,
0x0f
,
0x00
,
0x14
,
0xa3
,
0x96
,
0x99
,
0x4a
,
0x48
,
0x02
,
0x67
,
0x8e
,
0x4c
,
0xc7
,
0xf2
,
0x58
,
0xe3
,
0xdf
,
0x41
,
0x27
,
0x07
,
0x4f
,
0x9a
,
0xf6
,
0x04
,
0x40
,
0x31
,
0x6a
,
0x19
,
0xa9
,
0x84
,
0x1d
,
0x93
,
0x93
,
0xa3
,
0x01
,
0xb1
,
0x86
,
0xcc
,
0x1f
,
0x95
,
0x71
,
0xe6
,
0x5b
,
0x68
,
0xe5
,
0xe0
,
0x24
,
0x34
,
0xe6
,
0xcc
,
0x74
,
0xad
,
0xc0
,
0x35
,
0x39
,
0x39
,
0xb3
,
0x89
,
0x35
,
0x62
,
0xc1
,
0xb8
,
0x49
,
0x67
,
0x74
,
0xa8
,
0x59
,
0x52
,
0x26
,
0xa3
,
0x13
,
0xaf
,
0xf7
,
0x3e
,
0x36
,
0xc5
,
0x50
,
0x19
,
0x8c
,
0x31
,
0xbf
,
0x81
,
0x4e
,
0x0e
,
0x9e
,
0x34
,
0x46
,
0x87
,
0xba
,
0x25
,
0x65
,
0xd2
,
0x3b
,
0xf1
,
0x8d
,
0x27
,
0xe1
,
0xd4
,
0x8d
,
0xde
,
0x40
,
0x73
,
0x72
,
0x14
,
0x46
,
0x9b
,
0x59
,
0x17
,
0x52
,
0x33
,
0x38
,
0x0c
,
0xd2
,
0x05
,
0xe1
,
0x37
,
0x9e
,
0x39
,
0x61
,
0xb6
,
0x5f
,
0xa6
,
0x99
,
0xc3
,
0x3f
,
0xc0
,
0xb7
,
0xbe
,
0x55
,
0xac
,
0x20
,
0x6f
,
0x44
,
0x05
,
0x5d
,
0x46
,
0x23
,
0x6c
,
0x62
,
0xbe
,
0x45
,
0xc9
,
0x5a
,
0x0a
,
0x69
,
0x4e
,
0x02
,
0xfd
,
0xb3
,
0x0a
,
0xdf
,
0xe5
,
0x5d
,
0xa0
,
0xaf
,
0x60
,
0x46
,
0xc8
,
0x83
,
0xb9
,
0xa3
,
0xb4
,
0xbe
,
0x7d
,
0x8b
,
0x46
,
0x8c
,
0xfd
,
0x1c
,
0x40
,
0x0d
,
0xac
,
0xa8
,
0x95
,
0xe7
,
0x6d
,
0xce
,
0x27
,
0x3d
,
0x55
,
0x4d
,
0x6a
,
0xe1
,
0xf8
,
0x1d
,
0x75
,
0xc3
,
0x6c
,
0x13
,
0x53
,
0x3e
,
0x92
,
0x18
,
0x99
,
0x75
,
0x3d
,
0x6f
,
0x2b
,
0x86
,
0xf9
,
0x05
,
0xee
,
0xa6
,
0xe7
,
0x4d
,
0x74
,
0x66
,
0xc0
,
0x6d
,
0xc9
,
0x71
,
0xc5
,
0xda
,
0x93
,
0x80
,
0xdb
,
0xf8
,
0x7b
,
0x78
,
0x3a
,
0xdf
,
0xa4
,
0x3f
,
0x26
,
0xbc
,
0x79
,
0x93
,
0xaf
,
0xfe
,
0xa0
,
0x68
,
0x3b
,
0x09
,
0x99
,
0x1e
,
0x01
,
0x15
,
0x64
,
0xe8
,
0x3c
,
0x47
,
0xff
,
0x40
,
0xa2
,
0x0b
,
0x9f
,
0xf6
,
0x73
,
0xd1
,
0x33
,
0x05
,
0x7a
,
0x0f
,
0xed
,
0xee
,
0x9c
,
0xa9
,
0x20
,
0xf3
,
0x27
,
0x47
,
0x5c
,
0x41
,
0xbf
,
0x03
,
0xca
,
0x8e
,
0x6e
,
0x28
,
0x8e
,
0xd9
,
0xb7
,
0x03
,
0xb4
,
0x9b
,
0xb5
,
0x34
,
0xf5
,
0x48
,
0xa1
,
0xef
,
0x15
,
0x2f
,
0x90
,
0x29
,
0x54
,
0x53
,
0xe1
,
0x0c
,
0xa9
,
0xe3
,
0xdb
,
0x54
,
0x62
,
0xf8
,
0x53
,
0x58
,
0x48
,
0x0c
,
0x3d
,
0x28
,
0x8e
,
0x41
,
0xb7
,
0xd3
,
0x9e
,
0x3f
,
0xf1
,
0x20
,
0x80
,
0x92
,
0x1b
,
0x73
,
0xdf
,
0x1e
,
0xf4
,
0xfd
,
0x39
,
0x58
,
0x76
,
0x1e
,
0xd4
,
0xd7
,
0x73
,
0xf7
,
0x62
,
0xa4
,
0x37
,
0xd0
,
0x9c
,
0xec
,
0x15
,
0xea
,
0x2a
,
0x2b
,
0x62
,
0xec
,
0x17
,
0x00
,
0xaa
,
0xc3
,
0x47
,
0x9d
,
0xf4
,
0x96
,
0xc4
,
0x1b
,
0x83
,
0xae
,
0xe7
,
0x15
,
0x4c
,
0x50
,
0xea
,
0x2a
,
0x15
,
0xce
,
0x44
,
0x15
,
0x74
,
0x02
,
0xa0
,
0xe6
,
0x04
,
0x95
,
0xee
,
0x4d
,
0xc5
,
0x30
,
0x7f
,
0x82
,
0x47
,
0xe9
,
0x06
,
0x1d
,
0x3d
,
0x8e
,
0x3b
,
0x84
,
0xbc
,
0xa7
,
0x02
,
0xcc
,
0x50
,
0xa2
,
0xd2
,
0x9d
,
0x1d
,
0x2b
,
0x70
,
0xe5
,
0x69
,
0x35
,
0xf0
,
0x70
,
0x92
,
0xf7
,
0x2b
,
0xfd
,
0x49
,
0xd1
,
0x74
,
0x12
,
0x32
,
0xdd
,
0x33
,
0x2b
,
0xc8
,
0xdc
,
0xc6
,
0x5c
,
0x41
,
0xe6
,
0xb7
,
0x0f
,
0x0b
,
0x06
,
0x0c
,
0xe5
,
0x61
,
0xd1
,
0xc8
,
0x10
,
0x5e
,
0xf6
,
0x0c
,
0x91
,
0x56
,
0x97
,
0xbd
,
0xda
,
0xb8
,
0x82
,
0xfe
,
0x02
,
0x28
,
0xdb
,
0xeb
,
0xa2
,
0xd8
,
0x4f
,
0x85
,
0x4d
,
0xb7
,
0x8e
,
0xe7
,
0x68
,
0x70
,
0x50
,
0x97
,
0xbd
,
0x90
,
0x85
,
0xe3
,
0x0a
,
0xda
,
0x87
,
0x99
,
0x80
,
0x2c
,
0xa3
,
0xa5
,
0x2d
,
0x89
,
0xe1
,
0x2f
,
0xa1
,
0x99
,
0xe8
,
0x12
,
0x51
,
0xec
,
0xb1
,
0x6c
,
0x03
,
0xad
,
0x6f
,
0xe7
,
0x58
,
0x59
,
0xb1
,
0x6f
,
0x7d
,
0x39
,
0x2d
,
0x8c
,
0x0f
,
0x3d
,
0x83
,
0x5a
,
0x44
,
0x3b
,
0xd1
,
0x5a
,
0xce
,
0xc5
,
0x48
,
0xef
,
0xa1
,
0x3d
,
0x7b
,
0x11
,
0xd5
,
0x55
,
0x2a
,
0x68
,
0x39
,
0xd5
,
0x55
,
0x2a
,
0xa4
,
0x33
,
0x41
,
0xa6
,
0x75
,
0x2d
,
0xbb
,
0x11
,
0x03
,
0xbc
,
0x82
,
0x3b
,
0x29
,
0x8e
,
0x88
,
0x36
,
0x6c
,
0x22
,
0x2b
,
0xe8
,
0x02
,
0x40
,
0x35
,
0x56
,
0x2a
,
0xdc
,
0x99
,
0x2e
,
0x4e
,
0x85
,
0x3b
,
0xdb
,
0x62
,
0x4b
,
0x39
,
0x24
,
0x55
,
0xbf
,
0x5f
,
0xb0
,
0x9b
,
0x2c
,
0x59
,
0xc5
,
0xdd
,
0x54
,
0x0e
,
0x33
,
0x87
,
0xe1
,
0xca
,
0x4f
,
0xd5
,
0xd0
,
0xc2
,
0xd9
,
0x46
,
0x49
,
0x59
,
0x58
,
0xd0
,
0x91
,
0x29
,
0x0b
,
0xcc
,
0x52
,
0xe5
,
0x30
,
0x87
,
0xea
,
0x89
,
0x62
,
0xc8
,
0xd2
,
0x2f
,
0x55
,
0x0c
,
0x85
,
0x44
,
0x50
,
0x8b
,
0x7a
,
0xac
,
0xe8
,
0xb2
,
0x67
,
0x3a
,
0x0f
,
0x75
,
0xd9
,
0x8b
,
0x3a
,
0x2d
,
0x75
,
0xd9
,
0x0b
,
0x15
,
0x43
,
0x31
,
0x7b
,
0x8b
,
0xe0
,
0x27
,
0x09
,
0x53
,
0x12
,
0xbe
,
0x80
,
0xba
,
0x25
,
0xe1
,
0x8b
,
0xdb
,
0x16
,
0x5c
,
0x41
,
0xc7
,
0xb0
,
0x14
,
0x76
,
0x17
,
0x68
,
0x2d
,
0x5e
,
0xac
,
0xda
,
0x15
,
0x7d
,
0xf8
,
0x16
,
0xae
,
0x20
,
0x27
,
0xfb
,
0x27
,
0x41
,
0x12
,
0x1d
,
0xf4
,
0x65
,
0x51
,
0x1d
,
0xa4
,
0x19
,
0x3d
,
0x2d
,
0x8c
,
0x37
,
0xfd
,
0x0c
,
0xf5
,
0x29
,
0x4f
,
0x47
,
0x5b
,
0xd3
,
0x35
,
0x33
,
0xdd
,
0x87
,
0x97
,
0xfe
,
0xd5
,
0xbf
,
0xea
,
0xc5
,
0xd6
,
0xce
,
0xa0
,
0x91
,
0x24
,
0x3a
,
0x68
,
0x3d
,
0x7d
,
0x34
,
0xae
,
0x65
,
0x27
,
0x62
,
0x80
,
0x37
,
0xf0
,
0x4d
,
0x8a
,
0x54
,
0xa3
,
0x9d
,
0x58
,
0x53
,
0x0e
,
0xab
,
0x45
,
0x18
,
0xf4
,
0x8d
,
0xfc
,
0xcd
,
0x44
,
0xf1
,
0xbc
,
0x03
,
0xbd
,
0x98
,
0x0a
,
0xa0
,
0xaf
,
0x6f
,
0xd7
,
0x1f
,
0x17
,
0xcc
,
0x26
,
0x53
,
0x56
,
0x91
,
0x5d
,
0x15
,
0xc3
,
0x0c
,
0x15
,
0x57
,
0x31
,
0xcc
,
0xf3
,
0x2b
,
0x6d
,
0xea
,
0xd1
,
0xa7
,
0xa8
,
0x46
,
0x86
,
0x77
,
0xaa
,
0x41
,
0x87
,
0x4a
,
0xb0
,
0x23
,
0xe1
,
0xc6
,
0x22
,
0x19
,
0xb2
,
0x7c
,
0x55
,
0x25
,
0x43
,
0x21
,
0x73
,
0x56
,
0xc9
,
0x50
,
0x4c
,
0x77
,
0xd5
,
0xa1
,
0xb2
,
0xcc
,
0x4c
,
0x75
,
0xa8
,
0x1c
,
0x3a
,
0x25
,
0x7b
,
0x9d
,
0x62
,
0x17
,
0x89
,
0x5e
,
0xa7
,
0xf0
,
0xb3
,
0x0c
,
0x33
,
0x09
,
0x5f
,
0xc0
,
0x75
,
0x93
,
0xf0
,
0x45
,
0x04
,
0x15
,
0x57
,
0x90
,
0x97
,
0x21
,
0x2f
,
0x89
,
0x5e
,
0x97
,
0xa5
,
0x23
,
0xb8
,
0x82
,
0x7e
,
0x13
,
0xff
,
0x69
,
0xd2
,
0x94
,
0x9b
,
0x7d
,
0x7a
,
0x91
,
0xcc
,
0x10
,
0x7d
,
0x5f
,
0x94
,
0x07
,
0x69
,
0x8a
,
0xaa
,
0xff
,
0xea
,
0x7f
,
0x00
,
0x25
,
0x7f
,
0x97
,
0xe4
,
0xb2
,
0x0f
,
0x55
,
0xf0
,
0x85
,
0x7c
,
0x42
,
0x84
,
0xfa
,
0x12
,
0x16
,
0xae
,
0x8b
,
0xb5
,
0x5d
,
0x41
,
0x2b
,
0xc9
,
0x0c
,
0xd1
,
0x76
,
0x7a
,
0x6b
,
0x8a
,
0x61
,
0xe9
,
0x3b
,
0x33
,
0xdf
,
0x78
,
0x85
,
0x5e
,
0x44
,
0x27
,
0x14
,
0x7a
,
0x21
,
0x41
,
0xc0
,
0x15
,
0xf4
,
0x03
,
0xcc
,
0xf9
,
0x93
,
0x89
,
0xe4
,
0xf9
,
0x08
,
0x7a
,
0x31
,
0x77
,
0x42
,
0x3f
,
0xcc
,
0xb3
,
0x2b
,
0xad
,
0xea
,
0xcb
,
0x9f
,
0xa0
,
0x68
,
0x35
,
0xd6
,
0x4f
,
0xfd
,
0x5b
,
0xd5
,
0xd7
,
0x32
,
0xf2
,
0xe8
,
0xf4
,
0xd5
,
0xc7
,
0x2f
,
0x59
,
0x3a
,
0x55
,
0x7c
,
0x50
,
0x0d
,
0x2b
,
0x54
,
0x82
,
0x4e
,
0xaa
,
0x0a
,
0x95
,
0xa5
,
0x9c
,
0xf8
,
0x1f
,
0xbf
,
0xff
,
0x4f
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x23
,
0xc7
,
0xc8
,
0xe3
,
0xc1
,
0xb2
,
0xaa
,
0x42
,
0xe5
,
0xf0
,
0x4f
,
0x59
,
0xeb
,
0x14
,
0x1d
,
0x4b
,
0xd4
,
0xba
,
0x0c
,
0xdb
,
0x4b
,
0x17
,
0x00
,
0x00
,
0xd4
,
0xba
,
0x2c
,
0x7f
,
0xc3
,
0x15
,
0xf4
,
0x67
,
0xf1
,
0xb0
,
0x95
,
0xe6
,
0x50
,
0x28
,
0xf9
,
0xbe
,
0x94
,
0x4b
,
0xd7
,
0x54
,
0xc2
,
0x17
,
0x12
,
0x30
,
0xe1
,
0xea
,
0x5b
,
0x58
,
0xcd
,
0x90
,
0x22
,
0x85
,
0x5e
,
0xc4
,
0xbf
,
0x14
,
0x7a
,
0x21
,
0xa3
,
0xc2
,
0x15
,
0xf4
,
0x7b
,
0xa8
,
0xc9
,
0x57
,
0x63
,
0xb4
,
0x19
,
0xaf
,
0x4f
,
0x3d
,
0x46
,
0xeb
,
0x5b
,
0x19
,
0x79
,
0xbc
,
0xfb
,
0x25
,
0x34
,
0x13
,
0x5c
,
0x09
,
0x25
,
0x0b
,
0xee
,
0x0c
,
0x07
,
0x52
,
0x1e
,
0xcc
,
0x21
,
0x57
,
0xe2
,
0x94
,
0x7f
,
0x85
,
0x9d
,
0x79
,
0xc4
,
0x05
,
0x3d
,
0x9b
,
0x77
,
0x4f
,
0x66
,
0xb5
,
0x3d
,
0xff
,
0xb2
,
0xc5
,
0x53
,
0xf5
,
0x77
,
0x2b
,
0xe2
,
0x9f
,
0x98
,
0xe3
,
0xff
,
0x06
,
0x00
,
0x00
,
0xff
,
0xff
,
0x04
,
0x94
,
0xb1
,
0xc3
,
0xbb
,
0x19
,
0x00
,
0x00
,
}
}
vendor/vendor.json
View file @
b0798c9b
...
@@ -197,12 +197,12 @@
...
@@ -197,12 +197,12 @@
"revisionTime"
:
"2016-11-17T07:43:51Z"
"revisionTime"
:
"2016-11-17T07:43:51Z"
},
},
{
{
"checksumSHA1"
:
"
MVrf0BwLEpU3uGHmYOrIWVoJGCk
="
,
"checksumSHA1"
:
"
B+FjK1qIgELTplSb/hl3ZHGHjl0
="
,
"path"
:
"gitlab.com/gitlab-org/gitaly-proto/go"
,
"path"
:
"gitlab.com/gitlab-org/gitaly-proto/go"
,
"revision"
:
"
00d4006669b30b6a0fe66aaa9fa72285d18616fb
"
,
"revision"
:
"
8680efed3cdd68f3a2d4ccd56fb6684a6761d59e
"
,
"revisionTime"
:
"2018-04-0
3T14:25:38
Z"
,
"revisionTime"
:
"2018-04-0
5T16:15:56
Z"
,
"version"
:
"v0.9
5
.0"
,
"version"
:
"v0.9
6
.0"
,
"versionExact"
:
"v0.9
5
.0"
"versionExact"
:
"v0.9
6
.0"
},
},
{
{
"checksumSHA1"
:
"dUHJbKas746n5fLzlwxHb6FOCxs="
,
"checksumSHA1"
:
"dUHJbKas746n5fLzlwxHb6FOCxs="
,
...
...
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