google-protobuf 3.17.3-universal-darwin → 3.18.0.rc.1-universal-darwin

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of google-protobuf might be problematic. Click here for more details.

@@ -0,0 +1,266 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/protobuf/descriptor.proto
3
+
4
+ descriptor_data = File.binread(__FILE__).split("\n__END__\n", 2)[1]
5
+ Google::Protobuf::DescriptorPool.generated_pool.add_serialized_file(descriptor_data)
6
+
7
+ module Google
8
+ module Protobuf
9
+ FileDescriptorSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorSet").msgclass
10
+ FileDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorProto").msgclass
11
+ DescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto").msgclass
12
+ DescriptorProto::ExtensionRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ExtensionRange").msgclass
13
+ DescriptorProto::ReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ReservedRange").msgclass
14
+ ExtensionRangeOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ExtensionRangeOptions").msgclass
15
+ FieldDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto").msgclass
16
+ FieldDescriptorProto::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Type").enummodule
17
+ FieldDescriptorProto::Label = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Label").enummodule
18
+ OneofDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofDescriptorProto").msgclass
19
+ EnumDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto").msgclass
20
+ EnumDescriptorProto::EnumReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto.EnumReservedRange").msgclass
21
+ EnumValueDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueDescriptorProto").msgclass
22
+ ServiceDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceDescriptorProto").msgclass
23
+ MethodDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodDescriptorProto").msgclass
24
+ FileOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions").msgclass
25
+ FileOptions::OptimizeMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions.OptimizeMode").enummodule
26
+ MessageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MessageOptions").msgclass
27
+ FieldOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions").msgclass
28
+ FieldOptions::CType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.CType").enummodule
29
+ FieldOptions::JSType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.JSType").enummodule
30
+ OneofOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofOptions").msgclass
31
+ EnumOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumOptions").msgclass
32
+ EnumValueOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueOptions").msgclass
33
+ ServiceOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceOptions").msgclass
34
+ MethodOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions").msgclass
35
+ MethodOptions::IdempotencyLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions.IdempotencyLevel").enummodule
36
+ UninterpretedOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption").msgclass
37
+ UninterpretedOption::NamePart = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption.NamePart").msgclass
38
+ SourceCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo").msgclass
39
+ SourceCodeInfo::Location = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo.Location").msgclass
40
+ GeneratedCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo").msgclass
41
+ GeneratedCodeInfo::Annotation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo.Annotation").msgclass
42
+ end
43
+ end
44
+
45
+ __END__
46
+
47
+ google/protobuf/descriptor.protogoogle.protobuf"G
48
+ FileDescriptorSet2
49
+ file ( 2$.google.protobuf.FileDescriptorProto"�
50
+ FileDescriptorProto
51
+ name ( 
52
+ package ( 
53
+
54
+ dependency ( 
55
+ public_dependency
56
+ (
57
+ weak_dependency (6
58
+ message_type ( 2 .google.protobuf.DescriptorProto7
59
+ enum_type ( 2$.google.protobuf.EnumDescriptorProto8
60
+ service ( 2'.google.protobuf.ServiceDescriptorProto8
61
+ extension ( 2%.google.protobuf.FieldDescriptorProto-
62
+ options ( 2.google.protobuf.FileOptions9
63
+ source_code_info ( 2.google.protobuf.SourceCodeInfo
64
+ syntax ( "�
65
+ DescriptorProto
66
+ name ( 4
67
+ field ( 2%.google.protobuf.FieldDescriptorProto8
68
+ extension ( 2%.google.protobuf.FieldDescriptorProto5
69
+ nested_type ( 2 .google.protobuf.DescriptorProto7
70
+ enum_type ( 2$.google.protobuf.EnumDescriptorProtoH
71
+ extension_range ( 2/.google.protobuf.DescriptorProto.ExtensionRange9
72
+
73
+ oneof_decl ( 2%.google.protobuf.OneofDescriptorProto0
74
+ options ( 2.google.protobuf.MessageOptionsF
75
+ reserved_range ( 2..google.protobuf.DescriptorProto.ReservedRange
76
+
77
+ ( e
78
+ ExtensionRange
79
+ start (
80
+ end (7
81
+ options ( 2&.google.protobuf.ExtensionRangeOptions+
82
+
83
+ start (
84
+ end ("g
85
+ ExtensionRangeOptionsC
86
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"�
87
+ FieldDescriptorProto
88
+ name ( 
89
+ number (:
90
+ label (2+.google.protobuf.FieldDescriptorProto.Label8
91
+ type (2*.google.protobuf.FieldDescriptorProto.Type
92
+ type_name ( 
93
+ extendee ( 
94
+
95
+ oneof_index (
96
+ json_name
97
+ ( .
98
+ options ( 2.google.protobuf.FieldOptions
99
+ proto3_optional ("�
100
+ Type
101
+ TYPE_DOUBLE
102
+
103
+ TYPE_FLOAT
104
+
105
+ TYPE_INT64
106
+ TYPE_UINT64
107
+
108
+ TYPE_INT32
109
+ TYPE_FIXED64
110
+ TYPE_FIXED32
111
+ TYPE_BOOL
112
+ TYPE_STRING 
113
+
114
+ TYPE_GROUP
115
+ 
116
+ TYPE_MESSAGE 
117
+
118
+ TYPE_BYTES 
119
+ TYPE_UINT32
120
+ TYPE_ENUM
121
+
122
+
123
+ TYPE_SINT32
124
+ TYPE_SINT64"C
125
+ Label
126
+ LABEL_OPTIONAL
127
+ LABEL_REQUIRED
128
+ LABEL_REPEATED"T
129
+ OneofDescriptorProto
130
+ name ( .
131
+ options ( 2.google.protobuf.OneofOptions"�
132
+ EnumDescriptorProto
133
+ name ( 8
134
+ value ( 2).google.protobuf.EnumValueDescriptorProto-
135
+ options ( 2.google.protobuf.EnumOptionsN
136
+ reserved_range ( 26.google.protobuf.EnumDescriptorProto.EnumReservedRange
137
+
138
+ EnumReservedRange
139
+ start (
140
+ end ("l
141
+ EnumValueDescriptorProto
142
+ name ( 
143
+ number (2
144
+ options ( 2!.google.protobuf.EnumValueOptions"�
145
+ ServiceDescriptorProto
146
+ name ( 6
147
+ method ( 2&.google.protobuf.MethodDescriptorProto0
148
+ options ( 2.google.protobuf.ServiceOptions"�
149
+ MethodDescriptorProto
150
+ name ( 
151
+
152
+ input_type ( 
153
+ output_type ( /
154
+ options ( 2.google.protobuf.MethodOptions
155
+ client_streaming (:false
156
+ server_streaming (:false"�
157
+ FileOptions
158
+ java_package ( 
159
+ java_outer_classname ( "
160
+ java_multiple_files
161
+ (:false)
162
+ java_generate_equals_and_hash (B%
163
+ java_string_check_utf8 (:falseF
164
+ optimize_for (2).google.protobuf.FileOptions.OptimizeMode:SPEED
165
+
166
+ go_package ( "
167
+ cc_generic_services (:false$
168
+ java_generic_services (:false"
169
+ py_generic_services (:false#
170
+ php_generic_services* (:false
171
+
172
+ deprecated (:false
173
+ cc_enable_arenas (:true
174
+ objc_class_prefix$ ( 
175
+ csharp_namespace% ( 
176
+ swift_prefix' ( 
177
+ php_class_prefix( ( 
178
+
179
+ php_metadata_namespace, ( 
180
+ ruby_package- ( C
181
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption":
182
+ OptimizeMode
183
+ SPEED
184
+ CODE_SIZE
185
+ LITE_RUNTIME* �����J&'"�
186
+ MessageOptions&
187
+ message_set_wire_format (:false.
188
+ no_standard_descriptor_accessor (:false
189
+
190
+ deprecated (:false
191
+ map_entry (C
192
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����JJJJ J 
193
+ "�
194
+ FieldOptions:
195
+ ctype (2#.google.protobuf.FieldOptions.CType:STRING
196
+ packed (?
197
+ jstype (2$.google.protobuf.FieldOptions.JSType: JS_NORMAL
198
+ lazy (:false
199
+
200
+ deprecated (:false
201
+ weak
202
+ (:falseC
203
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption"/
204
+ CType
205
+
206
+ STRING
207
+ CORD
208
+ STRING_PIECE"5
209
+ JSType
210
+ JS_NORMAL
211
+ JS_STRING
212
+ JS_NUMBER* �����J"^
213
+ OneofOptionsC
214
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"�
215
+ EnumOptions
216
+ allow_alias (
217
+
218
+ deprecated (:falseC
219
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����J"}
220
+ EnumValueOptions
221
+
222
+ deprecated (:falseC
223
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"{
224
+ ServiceOptions
225
+
226
+ deprecated! (:falseC
227
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"�
228
+
229
+
230
+ deprecated! (:false_
231
+ idempotency_level" (2/.google.protobuf.MethodOptions.IdempotencyLevel:IDEMPOTENCY_UNKNOWNC
232
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption"P
233
+ IdempotencyLevel
234
+ IDEMPOTENCY_UNKNOWN
235
+ NO_SIDE_EFFECTS
236
+
237
+ IDEMPOTENT* �����"�
238
+ UninterpretedOption;
239
+ name ( 2-.google.protobuf.UninterpretedOption.NamePart
240
+ identifier_value ( 
241
+ positive_int_value (
242
+ negative_int_value (
243
+ double_value (
244
+ string_value ( 
245
+ aggregate_value ( 3
246
+ NamePart
247
+ name_part ( 
248
+ is_extension ("�
249
+ SourceCodeInfo:
250
+ location ( 2(.google.protobuf.SourceCodeInfo.Location�
251
+ Location
252
+ path (B
253
+ span (B
254
+ leading_comments ( 
255
+ trailing_comments ( !
256
+ leading_detached_comments ( "�
257
+ GeneratedCodeInfoA
258
+
259
+ annotation ( 2-.google.protobuf.GeneratedCodeInfo.AnnotationO
260
+
261
+ Annotation
262
+ path (B
263
+ source_file ( 
264
+ begin (
265
+ end (B~
266
+ com.google.protobufBDescriptorProtosHZ-google.golang.org/protobuf/types/descriptorpb��GPB�Google.Protobuf.Reflection
@@ -1,10 +1,10 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # source: google/protobuf/type.proto
3
3
 
4
- require 'google/protobuf'
5
-
6
4
  require 'google/protobuf/any_pb'
7
5
  require 'google/protobuf/source_context_pb'
6
+ require 'google/protobuf'
7
+
8
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
9
9
  add_file("google/protobuf/type.proto", :syntax => :proto3) do
10
10
  add_message "google.protobuf.Type" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.17.3
4
+ version: 3.18.0.rc.1
5
5
  platform: universal-darwin
6
6
  authors:
7
7
  - Protobuf Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-08 00:00:00.000000000 Z
11
+ date: 2021-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler-dock
@@ -99,7 +99,6 @@ files:
99
99
  - ext/google/protobuf_c/repeated_field.h
100
100
  - ext/google/protobuf_c/ruby-upb.c
101
101
  - ext/google/protobuf_c/ruby-upb.h
102
- - ext/google/protobuf_c/third_party/wyhash/wyhash.h
103
102
  - ext/google/protobuf_c/wrap_memcpy.c
104
103
  - lib/google/2.3/protobuf_c.bundle
105
104
  - lib/google/2.4/protobuf_c.bundle
@@ -110,6 +109,8 @@ files:
110
109
  - lib/google/protobuf.rb
111
110
  - lib/google/protobuf/any_pb.rb
112
111
  - lib/google/protobuf/api_pb.rb
112
+ - lib/google/protobuf/descriptor_dsl.rb
113
+ - lib/google/protobuf/descriptor_pb.rb
113
114
  - lib/google/protobuf/duration_pb.rb
114
115
  - lib/google/protobuf/empty_pb.rb
115
116
  - lib/google/protobuf/field_mask_pb.rb
@@ -128,7 +129,7 @@ homepage: https://developers.google.com/protocol-buffers
128
129
  licenses:
129
130
  - BSD-3-Clause
130
131
  metadata:
131
- source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.17.3/ruby
132
+ source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.18.0-rc1/ruby
132
133
  post_install_message:
133
134
  rdoc_options: []
134
135
  require_paths:
@@ -143,11 +144,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
144
  version: 3.1.dev
144
145
  required_rubygems_version: !ruby/object:Gem::Requirement
145
146
  requirements:
146
- - - ">="
147
+ - - ">"
147
148
  - !ruby/object:Gem::Version
148
- version: '0'
149
+ version: 1.3.1
149
150
  requirements: []
150
- rubygems_version: 3.2.19
151
+ rubygems_version: 3.2.26
151
152
  signing_key:
152
153
  specification_version: 4
153
154
  summary: Protocol Buffers
@@ -1,145 +0,0 @@
1
- /* Copyright 2020 王一 Wang Yi <godspeed_china@yeah.net>
2
- This is free and unencumbered software released into the public domain. http://unlicense.org/
3
- See github.com/wangyi-fudan/wyhash/ LICENSE
4
- */
5
- #ifndef wyhash_final_version
6
- #define wyhash_final_version
7
- //defines that change behavior
8
- #ifndef WYHASH_CONDOM
9
- #define WYHASH_CONDOM 1 //0: read 8 bytes before and after boundaries, dangerous but fastest. 1: normal valid behavior 2: extra protection against entropy loss (probability=2^-63), aka. "blind multiplication"
10
- #endif
11
- #define WYHASH_32BIT_MUM 0 //faster on 32 bit system
12
- //includes
13
- #include <stdint.h>
14
- #include <string.h>
15
- #if defined(_MSC_VER) && defined(_M_X64)
16
- #include <intrin.h>
17
- #pragma intrinsic(_umul128)
18
- #endif
19
- #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
20
- #define _likely_(x) __builtin_expect(x,1)
21
- #define _unlikely_(x) __builtin_expect(x,0)
22
- #else
23
- #define _likely_(x) (x)
24
- #define _unlikely_(x) (x)
25
- #endif
26
- //mum function
27
- static inline uint64_t _wyrot(uint64_t x) { return (x>>32)|(x<<32); }
28
- static inline void _wymum(uint64_t *A, uint64_t *B){
29
- #if(WYHASH_32BIT_MUM)
30
- uint64_t hh=(*A>>32)*(*B>>32), hl=(*A>>32)*(unsigned)*B, lh=(unsigned)*A*(*B>>32), ll=(uint64_t)(unsigned)*A*(unsigned)*B;
31
- #if(WYHASH_CONDOM>1)
32
- *A^=_wyrot(hl)^hh; *B^=_wyrot(lh)^ll;
33
- #else
34
- *A=_wyrot(hl)^hh; *B=_wyrot(lh)^ll;
35
- #endif
36
- #elif defined(__SIZEOF_INT128__)
37
- __uint128_t r=*A; r*=*B;
38
- #if(WYHASH_CONDOM>1)
39
- *A^=(uint64_t)r; *B^=(uint64_t)(r>>64);
40
- #else
41
- *A=(uint64_t)r; *B=(uint64_t)(r>>64);
42
- #endif
43
- #elif defined(_MSC_VER) && defined(_M_X64)
44
- #if(WYHASH_CONDOM>1)
45
- uint64_t a, b;
46
- a=_umul128(*A,*B,&b);
47
- *A^=a; *B^=b;
48
- #else
49
- *A=_umul128(*A,*B,B);
50
- #endif
51
- #else
52
- uint64_t ha=*A>>32, hb=*B>>32, la=(uint32_t)*A, lb=(uint32_t)*B, hi, lo;
53
- uint64_t rh=ha*hb, rm0=ha*lb, rm1=hb*la, rl=la*lb, t=rl+(rm0<<32), c=t<rl;
54
- lo=t+(rm1<<32); c+=lo<t; hi=rh+(rm0>>32)+(rm1>>32)+c;
55
- #if(WYHASH_CONDOM>1)
56
- *A^=lo; *B^=hi;
57
- #else
58
- *A=lo; *B=hi;
59
- #endif
60
- #endif
61
- }
62
- static inline uint64_t _wymix(uint64_t A, uint64_t B){ _wymum(&A,&B); return A^B; }
63
- //read functions
64
- #ifndef WYHASH_LITTLE_ENDIAN
65
- #if defined(_WIN32) || defined(__LITTLE_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
66
- #define WYHASH_LITTLE_ENDIAN 1
67
- #elif defined(__BIG_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
68
- #define WYHASH_LITTLE_ENDIAN 0
69
- #endif
70
- #endif
71
- #if (WYHASH_LITTLE_ENDIAN)
72
- static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return v;}
73
- static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return v;}
74
- #elif defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
75
- static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return __builtin_bswap64(v);}
76
- static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return __builtin_bswap32(v);}
77
- #elif defined(_MSC_VER)
78
- static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return _byteswap_uint64(v);}
79
- static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return _byteswap_ulong(v);}
80
- #endif
81
- static inline uint64_t _wyr3(const uint8_t *p, unsigned k) { return (((uint64_t)p[0])<<16)|(((uint64_t)p[k>>1])<<8)|p[k-1];}
82
- //wyhash function
83
- static inline uint64_t _wyfinish16(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){
84
- #if(WYHASH_CONDOM>0)
85
- uint64_t a, b;
86
- if(_likely_(i<=8)){
87
- if(_likely_(i>=4)){ a=_wyr4(p); b=_wyr4(p+i-4); }
88
- else if (_likely_(i)){ a=_wyr3(p,i); b=0; }
89
- else a=b=0;
90
- }
91
- else{ a=_wyr8(p); b=_wyr8(p+i-8); }
92
- return _wymix(secret[1]^len,_wymix(a^secret[1], b^seed));
93
- #else
94
- #define oneshot_shift ((i<8)*((8-i)<<3))
95
- return _wymix(secret[1]^len,_wymix((_wyr8(p)<<oneshot_shift)^secret[1],(_wyr8(p+i-8)>>oneshot_shift)^seed));
96
- #endif
97
- }
98
-
99
- static inline uint64_t _wyfinish(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){
100
- if(_likely_(i<=16)) return _wyfinish16(p,len,seed,secret,i);
101
- return _wyfinish(p+16,len,_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed),secret,i-16);
102
- }
103
-
104
- static inline uint64_t wyhash(const void *key, uint64_t len, uint64_t seed, const uint64_t *secret){
105
- const uint8_t *p=(const uint8_t *)key;
106
- uint64_t i=len; seed^=*secret;
107
- if(_unlikely_(i>64)){
108
- uint64_t see1=seed;
109
- do{
110
- seed=_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed)^_wymix(_wyr8(p+16)^secret[2],_wyr8(p+24)^seed);
111
- see1=_wymix(_wyr8(p+32)^secret[3],_wyr8(p+40)^see1)^_wymix(_wyr8(p+48)^secret[4],_wyr8(p+56)^see1);
112
- p+=64; i-=64;
113
- }while(i>64);
114
- seed^=see1;
115
- }
116
- return _wyfinish(p,len,seed,secret,i);
117
- }
118
- //utility functions
119
- static const uint64_t _wyp[5] = {0xa0761d6478bd642full, 0xe7037ed1a0b428dbull, 0x8ebc6af09c88c6e3ull, 0x589965cc75374cc3ull, 0x1d8e4e27c47d124full};
120
- static inline uint64_t wyhash64(uint64_t A, uint64_t B){ A^=_wyp[0]; B^=_wyp[1]; _wymum(&A,&B); return _wymix(A^_wyp[0],B^_wyp[1]);}
121
- static inline uint64_t wyrand(uint64_t *seed){ *seed+=_wyp[0]; return _wymix(*seed,*seed^_wyp[1]);}
122
- static inline double wy2u01(uint64_t r){ const double _wynorm=1.0/(1ull<<52); return (r>>12)*_wynorm;}
123
- static inline double wy2gau(uint64_t r){ const double _wynorm=1.0/(1ull<<20); return ((r&0x1fffff)+((r>>21)&0x1fffff)+((r>>42)&0x1fffff))*_wynorm-3.0;}
124
- static inline uint64_t wy2u0k(uint64_t r, uint64_t k){ _wymum(&r,&k); return k; }
125
-
126
- static inline void make_secret(uint64_t seed, uint64_t *secret){
127
- uint8_t c[] = {15, 23, 27, 29, 30, 39, 43, 45, 46, 51, 53, 54, 57, 58, 60, 71, 75, 77, 78, 83, 85, 86, 89, 90, 92, 99, 101, 102, 105, 106, 108, 113, 114, 116, 120, 135, 139, 141, 142, 147, 149, 150, 153, 154, 156, 163, 165, 166, 169, 170, 172, 177, 178, 180, 184, 195, 197, 198, 201, 202, 204, 209, 210, 212, 216, 225, 226, 228, 232, 240 };
128
- for(size_t i=0;i<5;i++){
129
- uint8_t ok;
130
- do{
131
- ok=1; secret[i]=0;
132
- for(size_t j=0;j<64;j+=8) secret[i]|=((uint64_t)c[wyrand(&seed)%sizeof(c)])<<j;
133
- if(secret[i]%2==0){ ok=0; continue; }
134
- for(size_t j=0;j<i;j++)
135
- #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
136
- if(__builtin_popcountll(secret[j]^secret[i])!=32){ ok=0; break; }
137
- #elif defined(_MSC_VER) && defined(_M_X64)
138
- if(_mm_popcnt_u64(secret[j]^secret[i])!=32){ ok=0; break; }
139
- #endif
140
- if(!ok)continue;
141
- for(uint64_t j=3;j<0x100000000ull;j+=2) if(secret[i]%j==0){ ok=0; break; }
142
- }while(!ok);
143
- }
144
- }
145
- #endif