OR-Tools  8.2
cp_model.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/cp_model.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
18 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
19 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
20 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
21 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<16> scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
22 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto;
23 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
24 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto;
25 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto;
26 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto;
27 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
28 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
29 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto;
30 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
31 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
32 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
33 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
34 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto;
35 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
36 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
37 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto;
38 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
39 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
40 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto;
41 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto;
42 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
43 namespace operations_research {
44 namespace sat {
46  public:
47  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntegerVariableProto> _instance;
50  public:
51  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BoolArgumentProto> _instance;
54  public:
55  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntegerArgumentProto> _instance;
58  public:
59  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearExpressionProto> _instance;
62  public:
63  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearArgumentProto> _instance;
66  public:
67  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AllDifferentConstraintProto> _instance;
70  public:
71  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearConstraintProto> _instance;
74  public:
75  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ElementConstraintProto> _instance;
78  public:
79  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntervalConstraintProto> _instance;
82  public:
83  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NoOverlapConstraintProto> _instance;
86  public:
87  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NoOverlap2DConstraintProto> _instance;
90  public:
91  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CumulativeConstraintProto> _instance;
94  public:
95  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ReservoirConstraintProto> _instance;
98  public:
99  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CircuitConstraintProto> _instance;
102  public:
103  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutesConstraintProto> _instance;
106  public:
107  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TableConstraintProto> _instance;
110  public:
111  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<InverseConstraintProto> _instance;
114  public:
115  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AutomatonConstraintProto> _instance;
118  public:
119  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConstraintProto> _instance;
122  public:
123  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpObjectiveProto> _instance;
126  public:
127  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DecisionStrategyProto_AffineTransformation> _instance;
130  public:
131  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DecisionStrategyProto> _instance;
134  public:
135  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PartialVariableAssignment> _instance;
138  public:
139  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SparsePermutationProto> _instance;
142  public:
143  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DenseMatrixProto> _instance;
146  public:
147  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SymmetryProto> _instance;
150  public:
151  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpModelProto> _instance;
154  public:
155  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpSolverResponse> _instance;
157 } // namespace sat
158 } // namespace operations_research
160  GOOGLE_PROTOBUF_VERIFY_VERSION;
161 
162  {
164  new (ptr) ::operations_research::sat::AllDifferentConstraintProto();
165  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
166  }
167 }
168 
169 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
170  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
171 
173  GOOGLE_PROTOBUF_VERIFY_VERSION;
174 
175  {
177  new (ptr) ::operations_research::sat::AutomatonConstraintProto();
178  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
179  }
180 }
181 
182 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
183  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
184 
186  GOOGLE_PROTOBUF_VERIFY_VERSION;
187 
188  {
190  new (ptr) ::operations_research::sat::BoolArgumentProto();
191  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
192  }
193 }
194 
195 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
196  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
197 
199  GOOGLE_PROTOBUF_VERIFY_VERSION;
200 
201  {
203  new (ptr) ::operations_research::sat::CircuitConstraintProto();
204  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
205  }
206 }
207 
208 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
209  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
210 
212  GOOGLE_PROTOBUF_VERIFY_VERSION;
213 
214  {
216  new (ptr) ::operations_research::sat::ConstraintProto();
217  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
218  }
219 }
220 
221 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<16> scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
222  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 16, 0, InitDefaultsscc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
239 
241  GOOGLE_PROTOBUF_VERIFY_VERSION;
242 
243  {
245  new (ptr) ::operations_research::sat::CpModelProto();
246  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
247  }
248 }
249 
250 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<6> scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto =
251  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 6, 0, InitDefaultsscc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
258 
260  GOOGLE_PROTOBUF_VERIFY_VERSION;
261 
262  {
264  new (ptr) ::operations_research::sat::CpObjectiveProto();
265  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
266  }
267 }
268 
269 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto =
270  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
271 
273  GOOGLE_PROTOBUF_VERIFY_VERSION;
274 
275  {
277  new (ptr) ::operations_research::sat::CpSolverResponse();
278  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
279  }
280 }
281 
282 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto =
283  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto}, {
285 
287  GOOGLE_PROTOBUF_VERIFY_VERSION;
288 
289  {
291  new (ptr) ::operations_research::sat::CumulativeConstraintProto();
292  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
293  }
294 }
295 
296 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
297  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
298 
300  GOOGLE_PROTOBUF_VERIFY_VERSION;
301 
302  {
304  new (ptr) ::operations_research::sat::DecisionStrategyProto();
305  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
306  }
307 }
308 
309 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto =
310  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
312 
314  GOOGLE_PROTOBUF_VERIFY_VERSION;
315 
316  {
318  new (ptr) ::operations_research::sat::DecisionStrategyProto_AffineTransformation();
319  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
320  }
321 }
322 
324  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
325 
327  GOOGLE_PROTOBUF_VERIFY_VERSION;
328 
329  {
331  new (ptr) ::operations_research::sat::DenseMatrixProto();
332  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
333  }
334 }
335 
336 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto =
337  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
338 
340  GOOGLE_PROTOBUF_VERIFY_VERSION;
341 
342  {
344  new (ptr) ::operations_research::sat::ElementConstraintProto();
345  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
346  }
347 }
348 
349 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
350  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
351 
353  GOOGLE_PROTOBUF_VERIFY_VERSION;
354 
355  {
357  new (ptr) ::operations_research::sat::IntegerArgumentProto();
358  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
359  }
360 }
361 
362 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
363  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
364 
366  GOOGLE_PROTOBUF_VERIFY_VERSION;
367 
368  {
370  new (ptr) ::operations_research::sat::IntegerVariableProto();
371  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
372  }
373 }
374 
375 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto =
376  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
377 
379  GOOGLE_PROTOBUF_VERIFY_VERSION;
380 
381  {
383  new (ptr) ::operations_research::sat::IntervalConstraintProto();
384  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
385  }
386 }
387 
388 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
389  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
391 
393  GOOGLE_PROTOBUF_VERIFY_VERSION;
394 
395  {
397  new (ptr) ::operations_research::sat::InverseConstraintProto();
398  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
399  }
400 }
401 
402 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
403  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
404 
406  GOOGLE_PROTOBUF_VERIFY_VERSION;
407 
408  {
410  new (ptr) ::operations_research::sat::LinearArgumentProto();
411  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
412  }
413 }
414 
415 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
416  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
418 
420  GOOGLE_PROTOBUF_VERIFY_VERSION;
421 
422  {
424  new (ptr) ::operations_research::sat::LinearConstraintProto();
425  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
426  }
427 }
428 
429 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
430  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
431 
433  GOOGLE_PROTOBUF_VERIFY_VERSION;
434 
435  {
437  new (ptr) ::operations_research::sat::LinearExpressionProto();
438  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
439  }
440 }
441 
442 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto =
443  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
444 
446  GOOGLE_PROTOBUF_VERIFY_VERSION;
447 
448  {
450  new (ptr) ::operations_research::sat::NoOverlap2DConstraintProto();
451  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
452  }
453 }
454 
455 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
456  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
457 
459  GOOGLE_PROTOBUF_VERIFY_VERSION;
460 
461  {
463  new (ptr) ::operations_research::sat::NoOverlapConstraintProto();
464  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
465  }
466 }
467 
468 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
469  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
470 
472  GOOGLE_PROTOBUF_VERIFY_VERSION;
473 
474  {
476  new (ptr) ::operations_research::sat::PartialVariableAssignment();
477  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
478  }
479 }
480 
481 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto =
482  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
483 
485  GOOGLE_PROTOBUF_VERIFY_VERSION;
486 
487  {
489  new (ptr) ::operations_research::sat::ReservoirConstraintProto();
490  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
491  }
492 }
493 
494 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
495  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
496 
498  GOOGLE_PROTOBUF_VERIFY_VERSION;
499 
500  {
502  new (ptr) ::operations_research::sat::RoutesConstraintProto();
503  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
504  }
505 }
506 
507 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
508  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
509 
511  GOOGLE_PROTOBUF_VERIFY_VERSION;
512 
513  {
515  new (ptr) ::operations_research::sat::SparsePermutationProto();
516  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
517  }
518 }
519 
520 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto =
521  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
522 
524  GOOGLE_PROTOBUF_VERIFY_VERSION;
525 
526  {
528  new (ptr) ::operations_research::sat::SymmetryProto();
529  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
530  }
531 }
532 
533 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<2> scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto =
534  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 2, 0, InitDefaultsscc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
537 
539  GOOGLE_PROTOBUF_VERIFY_VERSION;
540 
541  {
543  new (ptr) ::operations_research::sat::TableConstraintProto();
544  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
545  }
546 }
547 
548 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
549  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
550 
551 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[28];
552 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3];
553 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto = nullptr;
554 
556  ~0u, // no _has_bits_
557  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, _internal_metadata_),
558  ~0u, // no _extensions_
559  ~0u, // no _oneof_case_
560  ~0u, // no _weak_field_map_
561  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, name_),
562  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, domain_),
563  ~0u, // no _has_bits_
564  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, _internal_metadata_),
565  ~0u, // no _extensions_
566  ~0u, // no _oneof_case_
567  ~0u, // no _weak_field_map_
568  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, literals_),
569  ~0u, // no _has_bits_
570  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, _internal_metadata_),
571  ~0u, // no _extensions_
572  ~0u, // no _oneof_case_
573  ~0u, // no _weak_field_map_
574  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, target_),
575  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, vars_),
576  ~0u, // no _has_bits_
577  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, _internal_metadata_),
578  ~0u, // no _extensions_
579  ~0u, // no _oneof_case_
580  ~0u, // no _weak_field_map_
581  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, vars_),
582  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, coeffs_),
583  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, offset_),
584  ~0u, // no _has_bits_
585  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, _internal_metadata_),
586  ~0u, // no _extensions_
587  ~0u, // no _oneof_case_
588  ~0u, // no _weak_field_map_
589  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, target_),
590  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, exprs_),
591  ~0u, // no _has_bits_
592  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, _internal_metadata_),
593  ~0u, // no _extensions_
594  ~0u, // no _oneof_case_
595  ~0u, // no _weak_field_map_
596  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, vars_),
597  ~0u, // no _has_bits_
598  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, _internal_metadata_),
599  ~0u, // no _extensions_
600  ~0u, // no _oneof_case_
601  ~0u, // no _weak_field_map_
602  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, vars_),
603  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, coeffs_),
604  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, domain_),
605  ~0u, // no _has_bits_
606  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, _internal_metadata_),
607  ~0u, // no _extensions_
608  ~0u, // no _oneof_case_
609  ~0u, // no _weak_field_map_
610  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, index_),
611  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, target_),
612  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, vars_),
613  ~0u, // no _has_bits_
614  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, _internal_metadata_),
615  ~0u, // no _extensions_
616  ~0u, // no _oneof_case_
617  ~0u, // no _weak_field_map_
618  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_),
619  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_),
620  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_),
621  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_view_),
622  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_view_),
623  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_view_),
624  ~0u, // no _has_bits_
625  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, _internal_metadata_),
626  ~0u, // no _extensions_
627  ~0u, // no _oneof_case_
628  ~0u, // no _weak_field_map_
629  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, intervals_),
630  ~0u, // no _has_bits_
631  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, _internal_metadata_),
632  ~0u, // no _extensions_
633  ~0u, // no _oneof_case_
634  ~0u, // no _weak_field_map_
635  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, x_intervals_),
636  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, y_intervals_),
637  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, boxes_with_null_area_can_overlap_),
638  ~0u, // no _has_bits_
639  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, _internal_metadata_),
640  ~0u, // no _extensions_
641  ~0u, // no _oneof_case_
642  ~0u, // no _weak_field_map_
643  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, capacity_),
644  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, intervals_),
645  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, demands_),
646  ~0u, // no _has_bits_
647  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, _internal_metadata_),
648  ~0u, // no _extensions_
649  ~0u, // no _oneof_case_
650  ~0u, // no _weak_field_map_
651  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, min_level_),
652  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, max_level_),
653  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, times_),
654  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, demands_),
655  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, actives_),
656  ~0u, // no _has_bits_
657  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, _internal_metadata_),
658  ~0u, // no _extensions_
659  ~0u, // no _oneof_case_
660  ~0u, // no _weak_field_map_
661  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, tails_),
662  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, heads_),
663  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, literals_),
664  ~0u, // no _has_bits_
665  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, _internal_metadata_),
666  ~0u, // no _extensions_
667  ~0u, // no _oneof_case_
668  ~0u, // no _weak_field_map_
669  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, tails_),
670  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, heads_),
671  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, literals_),
672  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, demands_),
673  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, capacity_),
674  ~0u, // no _has_bits_
675  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, _internal_metadata_),
676  ~0u, // no _extensions_
677  ~0u, // no _oneof_case_
678  ~0u, // no _weak_field_map_
679  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, vars_),
680  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, values_),
681  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, negated_),
682  ~0u, // no _has_bits_
683  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, _internal_metadata_),
684  ~0u, // no _extensions_
685  ~0u, // no _oneof_case_
686  ~0u, // no _weak_field_map_
687  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_direct_),
688  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_inverse_),
689  ~0u, // no _has_bits_
690  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, _internal_metadata_),
691  ~0u, // no _extensions_
692  ~0u, // no _oneof_case_
693  ~0u, // no _weak_field_map_
694  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, starting_state_),
695  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, final_states_),
696  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_tail_),
697  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_head_),
698  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_label_),
699  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, vars_),
700  ~0u, // no _has_bits_
701  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _internal_metadata_),
702  ~0u, // no _extensions_
703  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _oneof_case_[0]),
704  ~0u, // no _weak_field_map_
705  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, name_),
706  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, enforcement_literal_),
707  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
708  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
709  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
710  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
711  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
712  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
713  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
714  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
715  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
716  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
717  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
718  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
719  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
720  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
721  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
722  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
723  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
724  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
725  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
726  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
727  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
728  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
729  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
730  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
731  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
732  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, constraint_),
733  ~0u, // no _has_bits_
734  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, _internal_metadata_),
735  ~0u, // no _extensions_
736  ~0u, // no _oneof_case_
737  ~0u, // no _weak_field_map_
738  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, vars_),
739  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, coeffs_),
740  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, offset_),
741  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_factor_),
742  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, domain_),
743  ~0u, // no _has_bits_
744  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, _internal_metadata_),
745  ~0u, // no _extensions_
746  ~0u, // no _oneof_case_
747  ~0u, // no _weak_field_map_
748  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, var_),
749  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, offset_),
750  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, positive_coeff_),
751  ~0u, // no _has_bits_
752  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, _internal_metadata_),
753  ~0u, // no _extensions_
754  ~0u, // no _oneof_case_
755  ~0u, // no _weak_field_map_
756  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variables_),
757  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variable_selection_strategy_),
758  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, domain_reduction_strategy_),
759  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, transformations_),
760  ~0u, // no _has_bits_
761  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, _internal_metadata_),
762  ~0u, // no _extensions_
763  ~0u, // no _oneof_case_
764  ~0u, // no _weak_field_map_
765  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, vars_),
766  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, values_),
767  ~0u, // no _has_bits_
768  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, _internal_metadata_),
769  ~0u, // no _extensions_
770  ~0u, // no _oneof_case_
771  ~0u, // no _weak_field_map_
772  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, support_),
773  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, cycle_sizes_),
774  ~0u, // no _has_bits_
775  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, _internal_metadata_),
776  ~0u, // no _extensions_
777  ~0u, // no _oneof_case_
778  ~0u, // no _weak_field_map_
779  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_rows_),
780  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_cols_),
781  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, entries_),
782  ~0u, // no _has_bits_
783  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, _internal_metadata_),
784  ~0u, // no _extensions_
785  ~0u, // no _oneof_case_
786  ~0u, // no _weak_field_map_
787  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, permutations_),
788  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, orbitopes_),
789  ~0u, // no _has_bits_
790  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, _internal_metadata_),
791  ~0u, // no _extensions_
792  ~0u, // no _oneof_case_
793  ~0u, // no _weak_field_map_
794  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, name_),
795  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, variables_),
796  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, constraints_),
797  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, objective_),
798  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, search_strategy_),
799  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, solution_hint_),
800  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, assumptions_),
801  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, symmetry_),
802  ~0u, // no _has_bits_
803  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, _internal_metadata_),
804  ~0u, // no _extensions_
805  ~0u, // no _oneof_case_
806  ~0u, // no _weak_field_map_
807  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, status_),
808  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_),
809  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, objective_value_),
810  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, best_objective_bound_),
811  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_lower_bounds_),
812  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_upper_bounds_),
813  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, tightened_variables_),
814  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, sufficient_assumptions_for_infeasibility_),
815  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, all_solutions_were_found_),
816  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_booleans_),
817  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_conflicts_),
818  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_branches_),
819  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_binary_propagations_),
820  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_integer_propagations_),
821  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_restarts_),
822  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_lp_iterations_),
823  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, wall_time_),
824  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, user_time_),
825  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, deterministic_time_),
826  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, primal_integral_),
827  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_info_),
828 };
829 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
830  { 0, -1, sizeof(::operations_research::sat::IntegerVariableProto)},
831  { 7, -1, sizeof(::operations_research::sat::BoolArgumentProto)},
832  { 13, -1, sizeof(::operations_research::sat::IntegerArgumentProto)},
833  { 20, -1, sizeof(::operations_research::sat::LinearExpressionProto)},
834  { 28, -1, sizeof(::operations_research::sat::LinearArgumentProto)},
835  { 35, -1, sizeof(::operations_research::sat::AllDifferentConstraintProto)},
836  { 41, -1, sizeof(::operations_research::sat::LinearConstraintProto)},
837  { 49, -1, sizeof(::operations_research::sat::ElementConstraintProto)},
838  { 57, -1, sizeof(::operations_research::sat::IntervalConstraintProto)},
839  { 68, -1, sizeof(::operations_research::sat::NoOverlapConstraintProto)},
840  { 74, -1, sizeof(::operations_research::sat::NoOverlap2DConstraintProto)},
841  { 82, -1, sizeof(::operations_research::sat::CumulativeConstraintProto)},
842  { 90, -1, sizeof(::operations_research::sat::ReservoirConstraintProto)},
843  { 100, -1, sizeof(::operations_research::sat::CircuitConstraintProto)},
844  { 108, -1, sizeof(::operations_research::sat::RoutesConstraintProto)},
845  { 118, -1, sizeof(::operations_research::sat::TableConstraintProto)},
846  { 126, -1, sizeof(::operations_research::sat::InverseConstraintProto)},
847  { 133, -1, sizeof(::operations_research::sat::AutomatonConstraintProto)},
848  { 144, -1, sizeof(::operations_research::sat::ConstraintProto)},
849  { 177, -1, sizeof(::operations_research::sat::CpObjectiveProto)},
850  { 187, -1, sizeof(::operations_research::sat::DecisionStrategyProto_AffineTransformation)},
851  { 195, -1, sizeof(::operations_research::sat::DecisionStrategyProto)},
852  { 204, -1, sizeof(::operations_research::sat::PartialVariableAssignment)},
853  { 211, -1, sizeof(::operations_research::sat::SparsePermutationProto)},
854  { 218, -1, sizeof(::operations_research::sat::DenseMatrixProto)},
855  { 226, -1, sizeof(::operations_research::sat::SymmetryProto)},
856  { 233, -1, sizeof(::operations_research::sat::CpModelProto)},
857  { 246, -1, sizeof(::operations_research::sat::CpSolverResponse)},
858 };
859 
860 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
861  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerVariableProto_default_instance_),
862  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BoolArgumentProto_default_instance_),
863  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerArgumentProto_default_instance_),
864  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearExpressionProto_default_instance_),
865  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearArgumentProto_default_instance_),
866  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AllDifferentConstraintProto_default_instance_),
867  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearConstraintProto_default_instance_),
868  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ElementConstraintProto_default_instance_),
869  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntervalConstraintProto_default_instance_),
870  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlapConstraintProto_default_instance_),
871  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlap2DConstraintProto_default_instance_),
872  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CumulativeConstraintProto_default_instance_),
873  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ReservoirConstraintProto_default_instance_),
874  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CircuitConstraintProto_default_instance_),
875  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_RoutesConstraintProto_default_instance_),
876  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_TableConstraintProto_default_instance_),
877  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_InverseConstraintProto_default_instance_),
878  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AutomatonConstraintProto_default_instance_),
879  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ConstraintProto_default_instance_),
880  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpObjectiveProto_default_instance_),
881  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_AffineTransformation_default_instance_),
882  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_default_instance_),
883  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_PartialVariableAssignment_default_instance_),
884  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SparsePermutationProto_default_instance_),
885  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DenseMatrixProto_default_instance_),
886  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SymmetryProto_default_instance_),
887  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpModelProto_default_instance_),
888  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverResponse_default_instance_),
889 };
890 
891 const char descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
892  "\n\032ortools/sat/cp_model.proto\022\027operations"
893  "_research.sat\"4\n\024IntegerVariableProto\022\014\n"
894  "\004name\030\001 \001(\t\022\016\n\006domain\030\002 \003(\003\"%\n\021BoolArgum"
895  "entProto\022\020\n\010literals\030\001 \003(\005\"4\n\024IntegerArg"
896  "umentProto\022\016\n\006target\030\001 \001(\005\022\014\n\004vars\030\002 \003(\005"
897  "\"E\n\025LinearExpressionProto\022\014\n\004vars\030\001 \003(\005\022"
898  "\016\n\006coeffs\030\002 \003(\003\022\016\n\006offset\030\003 \001(\003\"\224\001\n\023Line"
899  "arArgumentProto\022>\n\006target\030\001 \001(\0132..operat"
900  "ions_research.sat.LinearExpressionProto\022"
901  "=\n\005exprs\030\002 \003(\0132..operations_research.sat"
902  ".LinearExpressionProto\"+\n\033AllDifferentCo"
903  "nstraintProto\022\014\n\004vars\030\001 \003(\005\"E\n\025LinearCon"
904  "straintProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003"
905  "(\003\022\016\n\006domain\030\003 \003(\003\"E\n\026ElementConstraintP"
906  "roto\022\r\n\005index\030\001 \001(\005\022\016\n\006target\030\002 \001(\005\022\014\n\004v"
907  "ars\030\003 \003(\005\"\214\002\n\027IntervalConstraintProto\022\r\n"
908  "\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\022\014\n\004size\030\003 \001(\005\022"
909  "B\n\nstart_view\030\004 \001(\0132..operations_researc"
910  "h.sat.LinearExpressionProto\022@\n\010end_view\030"
911  "\005 \001(\0132..operations_research.sat.LinearEx"
912  "pressionProto\022A\n\tsize_view\030\006 \001(\0132..opera"
913  "tions_research.sat.LinearExpressionProto"
914  "\"-\n\030NoOverlapConstraintProto\022\021\n\tinterval"
915  "s\030\001 \003(\005\"p\n\032NoOverlap2DConstraintProto\022\023\n"
916  "\013x_intervals\030\001 \003(\005\022\023\n\013y_intervals\030\002 \003(\005\022"
917  "(\n boxes_with_null_area_can_overlap\030\003 \001("
918  "\010\"Q\n\031CumulativeConstraintProto\022\020\n\010capaci"
919  "ty\030\001 \001(\005\022\021\n\tintervals\030\002 \003(\005\022\017\n\007demands\030\003"
920  " \003(\005\"q\n\030ReservoirConstraintProto\022\021\n\tmin_"
921  "level\030\001 \001(\003\022\021\n\tmax_level\030\002 \001(\003\022\r\n\005times\030"
922  "\003 \003(\005\022\017\n\007demands\030\004 \003(\003\022\017\n\007actives\030\005 \003(\005\""
923  "H\n\026CircuitConstraintProto\022\r\n\005tails\030\003 \003(\005"
924  "\022\r\n\005heads\030\004 \003(\005\022\020\n\010literals\030\005 \003(\005\"j\n\025Rou"
925  "tesConstraintProto\022\r\n\005tails\030\001 \003(\005\022\r\n\005hea"
926  "ds\030\002 \003(\005\022\020\n\010literals\030\003 \003(\005\022\017\n\007demands\030\004 "
927  "\003(\005\022\020\n\010capacity\030\005 \001(\003\"E\n\024TableConstraint"
928  "Proto\022\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\022\017\n\007n"
929  "egated\030\003 \001(\010\"=\n\026InverseConstraintProto\022\020"
930  "\n\010f_direct\030\001 \003(\005\022\021\n\tf_inverse\030\002 \003(\005\"\242\001\n\030"
931  "AutomatonConstraintProto\022\026\n\016starting_sta"
932  "te\030\002 \001(\003\022\024\n\014final_states\030\003 \003(\003\022\027\n\017transi"
933  "tion_tail\030\004 \003(\003\022\027\n\017transition_head\030\005 \003(\003"
934  "\022\030\n\020transition_label\030\006 \003(\003\022\014\n\004vars\030\007 \003(\005"
935  "\"\355\r\n\017ConstraintProto\022\014\n\004name\030\001 \001(\t\022\033\n\023en"
936  "forcement_literal\030\002 \003(\005\022=\n\007bool_or\030\003 \001(\013"
937  "2*.operations_research.sat.BoolArgumentP"
938  "rotoH\000\022>\n\010bool_and\030\004 \001(\0132*.operations_re"
939  "search.sat.BoolArgumentProtoH\000\022A\n\013at_mos"
940  "t_one\030\032 \001(\0132*.operations_research.sat.Bo"
941  "olArgumentProtoH\000\022A\n\013exactly_one\030\035 \001(\0132*"
942  ".operations_research.sat.BoolArgumentPro"
943  "toH\000\022>\n\010bool_xor\030\005 \001(\0132*.operations_rese"
944  "arch.sat.BoolArgumentProtoH\000\022@\n\007int_div\030"
945  "\007 \001(\0132-.operations_research.sat.IntegerA"
946  "rgumentProtoH\000\022@\n\007int_mod\030\010 \001(\0132-.operat"
947  "ions_research.sat.IntegerArgumentProtoH\000"
948  "\022@\n\007int_max\030\t \001(\0132-.operations_research."
949  "sat.IntegerArgumentProtoH\000\022\?\n\007lin_max\030\033 "
950  "\001(\0132,.operations_research.sat.LinearArgu"
951  "mentProtoH\000\022@\n\007int_min\030\n \001(\0132-.operation"
952  "s_research.sat.IntegerArgumentProtoH\000\022\?\n"
953  "\007lin_min\030\034 \001(\0132,.operations_research.sat"
954  ".LinearArgumentProtoH\000\022A\n\010int_prod\030\013 \001(\013"
955  "2-.operations_research.sat.IntegerArgume"
956  "ntProtoH\000\022@\n\006linear\030\014 \001(\0132..operations_r"
957  "esearch.sat.LinearConstraintProtoH\000\022H\n\010a"
958  "ll_diff\030\r \001(\01324.operations_research.sat."
959  "AllDifferentConstraintProtoH\000\022B\n\007element"
960  "\030\016 \001(\0132/.operations_research.sat.Element"
961  "ConstraintProtoH\000\022B\n\007circuit\030\017 \001(\0132/.ope"
962  "rations_research.sat.CircuitConstraintPr"
963  "otoH\000\022@\n\006routes\030\027 \001(\0132..operations_resea"
964  "rch.sat.RoutesConstraintProtoH\000\022>\n\005table"
965  "\030\020 \001(\0132-.operations_research.sat.TableCo"
966  "nstraintProtoH\000\022F\n\tautomaton\030\021 \001(\01321.ope"
967  "rations_research.sat.AutomatonConstraint"
968  "ProtoH\000\022B\n\007inverse\030\022 \001(\0132/.operations_re"
969  "search.sat.InverseConstraintProtoH\000\022F\n\tr"
970  "eservoir\030\030 \001(\01321.operations_research.sat"
971  ".ReservoirConstraintProtoH\000\022D\n\010interval\030"
972  "\023 \001(\01320.operations_research.sat.Interval"
973  "ConstraintProtoH\000\022G\n\nno_overlap\030\024 \001(\01321."
974  "operations_research.sat.NoOverlapConstra"
975  "intProtoH\000\022L\n\rno_overlap_2d\030\025 \001(\01323.oper"
976  "ations_research.sat.NoOverlap2DConstrain"
977  "tProtoH\000\022H\n\ncumulative\030\026 \001(\01322.operation"
978  "s_research.sat.CumulativeConstraintProto"
979  "H\000B\014\n\nconstraint\"h\n\020CpObjectiveProto\022\014\n\004"
980  "vars\030\001 \003(\005\022\016\n\006coeffs\030\004 \003(\003\022\016\n\006offset\030\002 \001"
981  "(\001\022\026\n\016scaling_factor\030\003 \001(\001\022\016\n\006domain\030\005 \003"
982  "(\003\"\325\005\n\025DecisionStrategyProto\022\021\n\tvariable"
983  "s\030\001 \003(\005\022m\n\033variable_selection_strategy\030\002"
984  " \001(\0162H.operations_research.sat.DecisionS"
985  "trategyProto.VariableSelectionStrategy\022i"
986  "\n\031domain_reduction_strategy\030\003 \001(\0162F.oper"
987  "ations_research.sat.DecisionStrategyProt"
988  "o.DomainReductionStrategy\022\\\n\017transformat"
989  "ions\030\004 \003(\0132C.operations_research.sat.Dec"
990  "isionStrategyProto.AffineTransformation\032"
991  "K\n\024AffineTransformation\022\013\n\003var\030\001 \001(\005\022\016\n\006"
992  "offset\030\002 \001(\003\022\026\n\016positive_coeff\030\003 \001(\003\"\224\001\n"
993  "\031VariableSelectionStrategy\022\020\n\014CHOOSE_FIR"
994  "ST\020\000\022\025\n\021CHOOSE_LOWEST_MIN\020\001\022\026\n\022CHOOSE_HI"
995  "GHEST_MAX\020\002\022\032\n\026CHOOSE_MIN_DOMAIN_SIZE\020\003\022"
996  "\032\n\026CHOOSE_MAX_DOMAIN_SIZE\020\004\"\214\001\n\027DomainRe"
997  "ductionStrategy\022\024\n\020SELECT_MIN_VALUE\020\000\022\024\n"
998  "\020SELECT_MAX_VALUE\020\001\022\025\n\021SELECT_LOWER_HALF"
999  "\020\002\022\025\n\021SELECT_UPPER_HALF\020\003\022\027\n\023SELECT_MEDI"
1000  "AN_VALUE\020\004\"9\n\031PartialVariableAssignment\022"
1001  "\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\">\n\026SparseP"
1002  "ermutationProto\022\017\n\007support\030\001 \003(\005\022\023\n\013cycl"
1003  "e_sizes\030\002 \003(\005\"G\n\020DenseMatrixProto\022\020\n\010num"
1004  "_rows\030\001 \001(\005\022\020\n\010num_cols\030\002 \001(\005\022\017\n\007entries"
1005  "\030\003 \003(\005\"\224\001\n\rSymmetryProto\022E\n\014permutations"
1006  "\030\001 \003(\0132/.operations_research.sat.SparseP"
1007  "ermutationProto\022<\n\torbitopes\030\002 \003(\0132).ope"
1008  "rations_research.sat.DenseMatrixProto\"\276\003"
1009  "\n\014CpModelProto\022\014\n\004name\030\001 \001(\t\022@\n\tvariable"
1010  "s\030\002 \003(\0132-.operations_research.sat.Intege"
1011  "rVariableProto\022=\n\013constraints\030\003 \003(\0132(.op"
1012  "erations_research.sat.ConstraintProto\022<\n"
1013  "\tobjective\030\004 \001(\0132).operations_research.s"
1014  "at.CpObjectiveProto\022G\n\017search_strategy\030\005"
1015  " \003(\0132..operations_research.sat.DecisionS"
1016  "trategyProto\022I\n\rsolution_hint\030\006 \001(\01322.op"
1017  "erations_research.sat.PartialVariableAss"
1018  "ignment\022\023\n\013assumptions\030\007 \003(\005\0228\n\010symmetry"
1019  "\030\010 \001(\0132&.operations_research.sat.Symmetr"
1020  "yProto\"\233\005\n\020CpSolverResponse\0227\n\006status\030\001 "
1021  "\001(\0162\'.operations_research.sat.CpSolverSt"
1022  "atus\022\020\n\010solution\030\002 \003(\003\022\027\n\017objective_valu"
1023  "e\030\003 \001(\001\022\034\n\024best_objective_bound\030\004 \001(\001\022\035\n"
1024  "\025solution_lower_bounds\030\022 \003(\003\022\035\n\025solution"
1025  "_upper_bounds\030\023 \003(\003\022J\n\023tightened_variabl"
1026  "es\030\025 \003(\0132-.operations_research.sat.Integ"
1027  "erVariableProto\0220\n(sufficient_assumption"
1028  "s_for_infeasibility\030\027 \003(\005\022 \n\030all_solutio"
1029  "ns_were_found\030\005 \001(\010\022\024\n\014num_booleans\030\n \001("
1030  "\003\022\025\n\rnum_conflicts\030\013 \001(\003\022\024\n\014num_branches"
1031  "\030\014 \001(\003\022\037\n\027num_binary_propagations\030\r \001(\003\022"
1032  " \n\030num_integer_propagations\030\016 \001(\003\022\024\n\014num"
1033  "_restarts\030\030 \001(\003\022\031\n\021num_lp_iterations\030\031 \001"
1034  "(\003\022\021\n\twall_time\030\017 \001(\001\022\021\n\tuser_time\030\020 \001(\001"
1035  "\022\032\n\022deterministic_time\030\021 \001(\001\022\027\n\017primal_i"
1036  "ntegral\030\026 \001(\001\022\025\n\rsolution_info\030\024 \001(\t*[\n\016"
1037  "CpSolverStatus\022\013\n\007UNKNOWN\020\000\022\021\n\rMODEL_INV"
1038  "ALID\020\001\022\014\n\010FEASIBLE\020\002\022\016\n\nINFEASIBLE\020\003\022\013\n\007"
1039  "OPTIMAL\020\004B@\n\026com.google.ortools.satB\017CpM"
1040  "odelProtobufP\001\252\002\022Google.OrTools.Satb\006pro"
1041  "to3"
1042  ;
1043 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_deps[1] = {
1044 };
1045 static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_sccs[28] = {
1074 };
1075 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once;
1076 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto = {
1077  false, false, descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto, "ortools/sat/cp_model.proto", 5963,
1081 };
1082 
1083 // Force running AddDescriptors() at dynamic initialization time.
1084 static bool dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto = (static_cast<void>(::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto)), true);
1085 namespace operations_research {
1086 namespace sat {
1087 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_VariableSelectionStrategy_descriptor() {
1088  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1090 }
1092  switch (value) {
1093  case 0:
1094  case 1:
1095  case 2:
1096  case 3:
1097  case 4:
1098  return true;
1099  default:
1100  return false;
1101  }
1102 }
1103 
1104 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1105 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_FIRST;
1106 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_LOWEST_MIN;
1107 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_HIGHEST_MAX;
1108 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MIN_DOMAIN_SIZE;
1109 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MAX_DOMAIN_SIZE;
1110 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MIN;
1111 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MAX;
1112 constexpr int DecisionStrategyProto::VariableSelectionStrategy_ARRAYSIZE;
1113 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1114 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_DomainReductionStrategy_descriptor() {
1115  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1117 }
1119  switch (value) {
1120  case 0:
1121  case 1:
1122  case 2:
1123  case 3:
1124  case 4:
1125  return true;
1126  default:
1127  return false;
1128  }
1129 }
1130 
1131 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1132 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MIN_VALUE;
1133 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MAX_VALUE;
1134 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_LOWER_HALF;
1135 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_UPPER_HALF;
1136 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MEDIAN_VALUE;
1137 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MIN;
1138 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MAX;
1139 constexpr int DecisionStrategyProto::DomainReductionStrategy_ARRAYSIZE;
1140 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1141 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CpSolverStatus_descriptor() {
1142  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1144 }
1146  switch (value) {
1147  case 0:
1148  case 1:
1149  case 2:
1150  case 3:
1151  case 4:
1152  return true;
1153  default:
1154  return false;
1155  }
1156 }
1157 
1158 
1159 // ===================================================================
1160 
1162  public:
1163 };
1164 
1165 IntegerVariableProto::IntegerVariableProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1166  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1167  domain_(arena) {
1168  SharedCtor();
1169  RegisterArenaDtor(arena);
1170  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerVariableProto)
1171 }
1172 IntegerVariableProto::IntegerVariableProto(const IntegerVariableProto& from)
1173  : ::PROTOBUF_NAMESPACE_ID::Message(),
1174  domain_(from.domain_) {
1175  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1176  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1177  if (!from._internal_name().empty()) {
1178  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1179  GetArena());
1180  }
1181  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerVariableProto)
1182 }
1183 
1184 void IntegerVariableProto::SharedCtor() {
1185  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1186  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1187 }
1188 
1189 IntegerVariableProto::~IntegerVariableProto() {
1190  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerVariableProto)
1191  SharedDtor();
1192  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1193 }
1194 
1195 void IntegerVariableProto::SharedDtor() {
1196  GOOGLE_DCHECK(GetArena() == nullptr);
1197  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1198 }
1199 
1200 void IntegerVariableProto::ArenaDtor(void* object) {
1201  IntegerVariableProto* _this = reinterpret_cast< IntegerVariableProto* >(object);
1202  (void)_this;
1203 }
1204 void IntegerVariableProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1205 }
1206 void IntegerVariableProto::SetCachedSize(int size) const {
1207  _cached_size_.Set(size);
1208 }
1209 const IntegerVariableProto& IntegerVariableProto::default_instance() {
1210  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1211  return *internal_default_instance();
1212 }
1213 
1214 
1215 void IntegerVariableProto::Clear() {
1216 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerVariableProto)
1217  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1218  // Prevent compiler warnings about cached_has_bits being unused
1219  (void) cached_has_bits;
1220 
1221  domain_.Clear();
1222  name_.ClearToEmpty();
1223  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1224 }
1225 
1226 const char* IntegerVariableProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1227 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1228  while (!ctx->Done(&ptr)) {
1230  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1231  CHK_(ptr);
1232  switch (tag >> 3) {
1233  // string name = 1;
1234  case 1:
1235  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1236  auto str = _internal_mutable_name();
1237  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1238  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.IntegerVariableProto.name"));
1239  CHK_(ptr);
1240  } else goto handle_unusual;
1241  continue;
1242  // repeated int64 domain = 2;
1243  case 2:
1244  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1245  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
1246  CHK_(ptr);
1247  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1248  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1249  CHK_(ptr);
1250  } else goto handle_unusual;
1251  continue;
1252  default: {
1253  handle_unusual:
1254  if ((tag & 7) == 4 || tag == 0) {
1255  ctx->SetLastTag(tag);
1256  goto success;
1257  }
1258  ptr = UnknownFieldParse(tag,
1259  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1260  ptr, ctx);
1261  CHK_(ptr != nullptr);
1262  continue;
1263  }
1264  } // switch
1265  } // while
1266 success:
1267  return ptr;
1268 failure:
1269  ptr = nullptr;
1270  goto success;
1271 #undef CHK_
1272 }
1273 
1274 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerVariableProto::_InternalSerialize(
1275  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1276  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerVariableProto)
1277  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1278  (void) cached_has_bits;
1279 
1280  // string name = 1;
1281  if (this->name().size() > 0) {
1282  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1283  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1284  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1285  "operations_research.sat.IntegerVariableProto.name");
1286  target = stream->WriteStringMaybeAliased(
1287  1, this->_internal_name(), target);
1288  }
1289 
1290  // repeated int64 domain = 2;
1291  {
1292  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
1293  if (byte_size > 0) {
1294  target = stream->WriteInt64Packed(
1295  2, _internal_domain(), byte_size, target);
1296  }
1297  }
1298 
1299  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1300  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1301  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1302  }
1303  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerVariableProto)
1304  return target;
1305 }
1306 
1307 size_t IntegerVariableProto::ByteSizeLong() const {
1308 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerVariableProto)
1309  size_t total_size = 0;
1310 
1311  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1312  // Prevent compiler warnings about cached_has_bits being unused
1313  (void) cached_has_bits;
1314 
1315  // repeated int64 domain = 2;
1316  {
1317  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1318  Int64Size(this->domain_);
1319  if (data_size > 0) {
1320  total_size += 1 +
1321  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1322  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1323  }
1324  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1325  _domain_cached_byte_size_.store(cached_size,
1326  std::memory_order_relaxed);
1327  total_size += data_size;
1328  }
1329 
1330  // string name = 1;
1331  if (this->name().size() > 0) {
1332  total_size += 1 +
1333  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1334  this->_internal_name());
1335  }
1336 
1337  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1338  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1339  _internal_metadata_, total_size, &_cached_size_);
1340  }
1341  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1342  SetCachedSize(cached_size);
1343  return total_size;
1344 }
1345 
1346 void IntegerVariableProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1347 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerVariableProto)
1348  GOOGLE_DCHECK_NE(&from, this);
1349  const IntegerVariableProto* source =
1350  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerVariableProto>(
1351  &from);
1352  if (source == nullptr) {
1353  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerVariableProto)
1354  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1355  } else {
1356  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerVariableProto)
1357  MergeFrom(*source);
1358  }
1359 }
1360 
1361 void IntegerVariableProto::MergeFrom(const IntegerVariableProto& from) {
1362 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerVariableProto)
1363  GOOGLE_DCHECK_NE(&from, this);
1364  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1365  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1366  (void) cached_has_bits;
1367 
1368  domain_.MergeFrom(from.domain_);
1369  if (from.name().size() > 0) {
1370  _internal_set_name(from._internal_name());
1371  }
1372 }
1373 
1374 void IntegerVariableProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1375 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerVariableProto)
1376  if (&from == this) return;
1377  Clear();
1378  MergeFrom(from);
1379 }
1380 
1381 void IntegerVariableProto::CopyFrom(const IntegerVariableProto& from) {
1382 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerVariableProto)
1383  if (&from == this) return;
1384  Clear();
1385  MergeFrom(from);
1386 }
1387 
1388 bool IntegerVariableProto::IsInitialized() const {
1389  return true;
1390 }
1391 
1392 void IntegerVariableProto::InternalSwap(IntegerVariableProto* other) {
1393  using std::swap;
1394  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1395  domain_.InternalSwap(&other->domain_);
1396  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
1397 }
1398 
1399 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerVariableProto::GetMetadata() const {
1400  return GetMetadataStatic();
1401 }
1402 
1403 
1404 // ===================================================================
1405 
1407  public:
1408 };
1409 
1410 BoolArgumentProto::BoolArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1411  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1412  literals_(arena) {
1413  SharedCtor();
1414  RegisterArenaDtor(arena);
1415  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BoolArgumentProto)
1416 }
1417 BoolArgumentProto::BoolArgumentProto(const BoolArgumentProto& from)
1418  : ::PROTOBUF_NAMESPACE_ID::Message(),
1419  literals_(from.literals_) {
1420  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1421  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BoolArgumentProto)
1422 }
1423 
1424 void BoolArgumentProto::SharedCtor() {
1425 }
1426 
1427 BoolArgumentProto::~BoolArgumentProto() {
1428  // @@protoc_insertion_point(destructor:operations_research.sat.BoolArgumentProto)
1429  SharedDtor();
1430  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1431 }
1432 
1433 void BoolArgumentProto::SharedDtor() {
1434  GOOGLE_DCHECK(GetArena() == nullptr);
1435 }
1436 
1437 void BoolArgumentProto::ArenaDtor(void* object) {
1438  BoolArgumentProto* _this = reinterpret_cast< BoolArgumentProto* >(object);
1439  (void)_this;
1440 }
1441 void BoolArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1442 }
1443 void BoolArgumentProto::SetCachedSize(int size) const {
1444  _cached_size_.Set(size);
1445 }
1446 const BoolArgumentProto& BoolArgumentProto::default_instance() {
1447  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1448  return *internal_default_instance();
1449 }
1450 
1451 
1452 void BoolArgumentProto::Clear() {
1453 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BoolArgumentProto)
1454  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1455  // Prevent compiler warnings about cached_has_bits being unused
1456  (void) cached_has_bits;
1457 
1458  literals_.Clear();
1459  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1460 }
1461 
1462 const char* BoolArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1463 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1464  while (!ctx->Done(&ptr)) {
1466  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1467  CHK_(ptr);
1468  switch (tag >> 3) {
1469  // repeated int32 literals = 1;
1470  case 1:
1471  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1472  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
1473  CHK_(ptr);
1474  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1475  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1476  CHK_(ptr);
1477  } else goto handle_unusual;
1478  continue;
1479  default: {
1480  handle_unusual:
1481  if ((tag & 7) == 4 || tag == 0) {
1482  ctx->SetLastTag(tag);
1483  goto success;
1484  }
1485  ptr = UnknownFieldParse(tag,
1486  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1487  ptr, ctx);
1488  CHK_(ptr != nullptr);
1489  continue;
1490  }
1491  } // switch
1492  } // while
1493 success:
1494  return ptr;
1495 failure:
1496  ptr = nullptr;
1497  goto success;
1498 #undef CHK_
1499 }
1500 
1501 ::PROTOBUF_NAMESPACE_ID::uint8* BoolArgumentProto::_InternalSerialize(
1502  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1503  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BoolArgumentProto)
1504  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1505  (void) cached_has_bits;
1506 
1507  // repeated int32 literals = 1;
1508  {
1509  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
1510  if (byte_size > 0) {
1511  target = stream->WriteInt32Packed(
1512  1, _internal_literals(), byte_size, target);
1513  }
1514  }
1515 
1516  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1517  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1518  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1519  }
1520  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BoolArgumentProto)
1521  return target;
1522 }
1523 
1524 size_t BoolArgumentProto::ByteSizeLong() const {
1525 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BoolArgumentProto)
1526  size_t total_size = 0;
1527 
1528  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1529  // Prevent compiler warnings about cached_has_bits being unused
1530  (void) cached_has_bits;
1531 
1532  // repeated int32 literals = 1;
1533  {
1534  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1535  Int32Size(this->literals_);
1536  if (data_size > 0) {
1537  total_size += 1 +
1538  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1539  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1540  }
1541  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1542  _literals_cached_byte_size_.store(cached_size,
1543  std::memory_order_relaxed);
1544  total_size += data_size;
1545  }
1546 
1547  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1548  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1549  _internal_metadata_, total_size, &_cached_size_);
1550  }
1551  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1552  SetCachedSize(cached_size);
1553  return total_size;
1554 }
1555 
1556 void BoolArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1557 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.BoolArgumentProto)
1558  GOOGLE_DCHECK_NE(&from, this);
1559  const BoolArgumentProto* source =
1560  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BoolArgumentProto>(
1561  &from);
1562  if (source == nullptr) {
1563  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.BoolArgumentProto)
1564  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1565  } else {
1566  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.BoolArgumentProto)
1567  MergeFrom(*source);
1568  }
1569 }
1570 
1571 void BoolArgumentProto::MergeFrom(const BoolArgumentProto& from) {
1572 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BoolArgumentProto)
1573  GOOGLE_DCHECK_NE(&from, this);
1574  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1575  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1576  (void) cached_has_bits;
1577 
1578  literals_.MergeFrom(from.literals_);
1579 }
1580 
1581 void BoolArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1582 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.BoolArgumentProto)
1583  if (&from == this) return;
1584  Clear();
1585  MergeFrom(from);
1586 }
1587 
1588 void BoolArgumentProto::CopyFrom(const BoolArgumentProto& from) {
1589 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BoolArgumentProto)
1590  if (&from == this) return;
1591  Clear();
1592  MergeFrom(from);
1593 }
1594 
1595 bool BoolArgumentProto::IsInitialized() const {
1596  return true;
1597 }
1598 
1599 void BoolArgumentProto::InternalSwap(BoolArgumentProto* other) {
1600  using std::swap;
1601  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1602  literals_.InternalSwap(&other->literals_);
1603 }
1604 
1605 ::PROTOBUF_NAMESPACE_ID::Metadata BoolArgumentProto::GetMetadata() const {
1606  return GetMetadataStatic();
1607 }
1608 
1609 
1610 // ===================================================================
1611 
1613  public:
1614 };
1615 
1616 IntegerArgumentProto::IntegerArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1617  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1618  vars_(arena) {
1619  SharedCtor();
1620  RegisterArenaDtor(arena);
1621  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerArgumentProto)
1622 }
1623 IntegerArgumentProto::IntegerArgumentProto(const IntegerArgumentProto& from)
1624  : ::PROTOBUF_NAMESPACE_ID::Message(),
1625  vars_(from.vars_) {
1626  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1627  target_ = from.target_;
1628  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerArgumentProto)
1629 }
1630 
1631 void IntegerArgumentProto::SharedCtor() {
1632  target_ = 0;
1633 }
1634 
1635 IntegerArgumentProto::~IntegerArgumentProto() {
1636  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerArgumentProto)
1637  SharedDtor();
1638  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1639 }
1640 
1641 void IntegerArgumentProto::SharedDtor() {
1642  GOOGLE_DCHECK(GetArena() == nullptr);
1643 }
1644 
1645 void IntegerArgumentProto::ArenaDtor(void* object) {
1646  IntegerArgumentProto* _this = reinterpret_cast< IntegerArgumentProto* >(object);
1647  (void)_this;
1648 }
1649 void IntegerArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1650 }
1651 void IntegerArgumentProto::SetCachedSize(int size) const {
1652  _cached_size_.Set(size);
1653 }
1654 const IntegerArgumentProto& IntegerArgumentProto::default_instance() {
1655  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1656  return *internal_default_instance();
1657 }
1658 
1659 
1660 void IntegerArgumentProto::Clear() {
1661 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerArgumentProto)
1662  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1663  // Prevent compiler warnings about cached_has_bits being unused
1664  (void) cached_has_bits;
1665 
1666  vars_.Clear();
1667  target_ = 0;
1668  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1669 }
1670 
1671 const char* IntegerArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1672 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1673  while (!ctx->Done(&ptr)) {
1675  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1676  CHK_(ptr);
1677  switch (tag >> 3) {
1678  // int32 target = 1;
1679  case 1:
1680  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1681  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1682  CHK_(ptr);
1683  } else goto handle_unusual;
1684  continue;
1685  // repeated int32 vars = 2;
1686  case 2:
1687  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1688  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1689  CHK_(ptr);
1690  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1691  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1692  CHK_(ptr);
1693  } else goto handle_unusual;
1694  continue;
1695  default: {
1696  handle_unusual:
1697  if ((tag & 7) == 4 || tag == 0) {
1698  ctx->SetLastTag(tag);
1699  goto success;
1700  }
1701  ptr = UnknownFieldParse(tag,
1702  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1703  ptr, ctx);
1704  CHK_(ptr != nullptr);
1705  continue;
1706  }
1707  } // switch
1708  } // while
1709 success:
1710  return ptr;
1711 failure:
1712  ptr = nullptr;
1713  goto success;
1714 #undef CHK_
1715 }
1716 
1717 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerArgumentProto::_InternalSerialize(
1718  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1719  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerArgumentProto)
1720  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1721  (void) cached_has_bits;
1722 
1723  // int32 target = 1;
1724  if (this->target() != 0) {
1725  target = stream->EnsureSpace(target);
1726  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_target(), target);
1727  }
1728 
1729  // repeated int32 vars = 2;
1730  {
1731  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1732  if (byte_size > 0) {
1733  target = stream->WriteInt32Packed(
1734  2, _internal_vars(), byte_size, target);
1735  }
1736  }
1737 
1738  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1739  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1740  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1741  }
1742  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerArgumentProto)
1743  return target;
1744 }
1745 
1746 size_t IntegerArgumentProto::ByteSizeLong() const {
1747 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerArgumentProto)
1748  size_t total_size = 0;
1749 
1750  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1751  // Prevent compiler warnings about cached_has_bits being unused
1752  (void) cached_has_bits;
1753 
1754  // repeated int32 vars = 2;
1755  {
1756  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1757  Int32Size(this->vars_);
1758  if (data_size > 0) {
1759  total_size += 1 +
1760  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1761  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1762  }
1763  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1764  _vars_cached_byte_size_.store(cached_size,
1765  std::memory_order_relaxed);
1766  total_size += data_size;
1767  }
1768 
1769  // int32 target = 1;
1770  if (this->target() != 0) {
1771  total_size += 1 +
1772  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1773  this->_internal_target());
1774  }
1775 
1776  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1777  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1778  _internal_metadata_, total_size, &_cached_size_);
1779  }
1780  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1781  SetCachedSize(cached_size);
1782  return total_size;
1783 }
1784 
1785 void IntegerArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1786 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerArgumentProto)
1787  GOOGLE_DCHECK_NE(&from, this);
1788  const IntegerArgumentProto* source =
1789  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerArgumentProto>(
1790  &from);
1791  if (source == nullptr) {
1792  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerArgumentProto)
1793  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1794  } else {
1795  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerArgumentProto)
1796  MergeFrom(*source);
1797  }
1798 }
1799 
1800 void IntegerArgumentProto::MergeFrom(const IntegerArgumentProto& from) {
1801 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerArgumentProto)
1802  GOOGLE_DCHECK_NE(&from, this);
1803  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1804  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1805  (void) cached_has_bits;
1806 
1807  vars_.MergeFrom(from.vars_);
1808  if (from.target() != 0) {
1809  _internal_set_target(from._internal_target());
1810  }
1811 }
1812 
1813 void IntegerArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1814 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerArgumentProto)
1815  if (&from == this) return;
1816  Clear();
1817  MergeFrom(from);
1818 }
1819 
1820 void IntegerArgumentProto::CopyFrom(const IntegerArgumentProto& from) {
1821 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerArgumentProto)
1822  if (&from == this) return;
1823  Clear();
1824  MergeFrom(from);
1825 }
1826 
1827 bool IntegerArgumentProto::IsInitialized() const {
1828  return true;
1829 }
1830 
1831 void IntegerArgumentProto::InternalSwap(IntegerArgumentProto* other) {
1832  using std::swap;
1833  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1834  vars_.InternalSwap(&other->vars_);
1835  swap(target_, other->target_);
1836 }
1837 
1838 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerArgumentProto::GetMetadata() const {
1839  return GetMetadataStatic();
1840 }
1841 
1842 
1843 // ===================================================================
1844 
1846  public:
1847 };
1848 
1849 LinearExpressionProto::LinearExpressionProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1850  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1851  vars_(arena),
1852  coeffs_(arena) {
1853  SharedCtor();
1854  RegisterArenaDtor(arena);
1855  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearExpressionProto)
1856 }
1857 LinearExpressionProto::LinearExpressionProto(const LinearExpressionProto& from)
1858  : ::PROTOBUF_NAMESPACE_ID::Message(),
1859  vars_(from.vars_),
1860  coeffs_(from.coeffs_) {
1861  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1862  offset_ = from.offset_;
1863  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearExpressionProto)
1864 }
1865 
1866 void LinearExpressionProto::SharedCtor() {
1867  offset_ = PROTOBUF_LONGLONG(0);
1868 }
1869 
1870 LinearExpressionProto::~LinearExpressionProto() {
1871  // @@protoc_insertion_point(destructor:operations_research.sat.LinearExpressionProto)
1872  SharedDtor();
1873  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1874 }
1875 
1876 void LinearExpressionProto::SharedDtor() {
1877  GOOGLE_DCHECK(GetArena() == nullptr);
1878 }
1879 
1880 void LinearExpressionProto::ArenaDtor(void* object) {
1881  LinearExpressionProto* _this = reinterpret_cast< LinearExpressionProto* >(object);
1882  (void)_this;
1883 }
1884 void LinearExpressionProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1885 }
1886 void LinearExpressionProto::SetCachedSize(int size) const {
1887  _cached_size_.Set(size);
1888 }
1889 const LinearExpressionProto& LinearExpressionProto::default_instance() {
1890  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1891  return *internal_default_instance();
1892 }
1893 
1894 
1895 void LinearExpressionProto::Clear() {
1896 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearExpressionProto)
1897  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1898  // Prevent compiler warnings about cached_has_bits being unused
1899  (void) cached_has_bits;
1900 
1901  vars_.Clear();
1902  coeffs_.Clear();
1903  offset_ = PROTOBUF_LONGLONG(0);
1904  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1905 }
1906 
1907 const char* LinearExpressionProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1908 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1909  while (!ctx->Done(&ptr)) {
1911  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1912  CHK_(ptr);
1913  switch (tag >> 3) {
1914  // repeated int32 vars = 1;
1915  case 1:
1916  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1917  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1918  CHK_(ptr);
1919  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1920  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1921  CHK_(ptr);
1922  } else goto handle_unusual;
1923  continue;
1924  // repeated int64 coeffs = 2;
1925  case 2:
1926  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1927  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
1928  CHK_(ptr);
1929  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1930  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1931  CHK_(ptr);
1932  } else goto handle_unusual;
1933  continue;
1934  // int64 offset = 3;
1935  case 3:
1936  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1937  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1938  CHK_(ptr);
1939  } else goto handle_unusual;
1940  continue;
1941  default: {
1942  handle_unusual:
1943  if ((tag & 7) == 4 || tag == 0) {
1944  ctx->SetLastTag(tag);
1945  goto success;
1946  }
1947  ptr = UnknownFieldParse(tag,
1948  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1949  ptr, ctx);
1950  CHK_(ptr != nullptr);
1951  continue;
1952  }
1953  } // switch
1954  } // while
1955 success:
1956  return ptr;
1957 failure:
1958  ptr = nullptr;
1959  goto success;
1960 #undef CHK_
1961 }
1962 
1963 ::PROTOBUF_NAMESPACE_ID::uint8* LinearExpressionProto::_InternalSerialize(
1964  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1965  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearExpressionProto)
1966  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1967  (void) cached_has_bits;
1968 
1969  // repeated int32 vars = 1;
1970  {
1971  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1972  if (byte_size > 0) {
1973  target = stream->WriteInt32Packed(
1974  1, _internal_vars(), byte_size, target);
1975  }
1976  }
1977 
1978  // repeated int64 coeffs = 2;
1979  {
1980  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
1981  if (byte_size > 0) {
1982  target = stream->WriteInt64Packed(
1983  2, _internal_coeffs(), byte_size, target);
1984  }
1985  }
1986 
1987  // int64 offset = 3;
1988  if (this->offset() != 0) {
1989  target = stream->EnsureSpace(target);
1990  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_offset(), target);
1991  }
1992 
1993  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1994  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1995  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1996  }
1997  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearExpressionProto)
1998  return target;
1999 }
2000 
2001 size_t LinearExpressionProto::ByteSizeLong() const {
2002 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearExpressionProto)
2003  size_t total_size = 0;
2004 
2005  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2006  // Prevent compiler warnings about cached_has_bits being unused
2007  (void) cached_has_bits;
2008 
2009  // repeated int32 vars = 1;
2010  {
2011  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2012  Int32Size(this->vars_);
2013  if (data_size > 0) {
2014  total_size += 1 +
2015  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2016  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2017  }
2018  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2019  _vars_cached_byte_size_.store(cached_size,
2020  std::memory_order_relaxed);
2021  total_size += data_size;
2022  }
2023 
2024  // repeated int64 coeffs = 2;
2025  {
2026  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2027  Int64Size(this->coeffs_);
2028  if (data_size > 0) {
2029  total_size += 1 +
2030  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2031  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2032  }
2033  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2034  _coeffs_cached_byte_size_.store(cached_size,
2035  std::memory_order_relaxed);
2036  total_size += data_size;
2037  }
2038 
2039  // int64 offset = 3;
2040  if (this->offset() != 0) {
2041  total_size += 1 +
2042  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
2043  this->_internal_offset());
2044  }
2045 
2046  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2047  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2048  _internal_metadata_, total_size, &_cached_size_);
2049  }
2050  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2051  SetCachedSize(cached_size);
2052  return total_size;
2053 }
2054 
2055 void LinearExpressionProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2056 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearExpressionProto)
2057  GOOGLE_DCHECK_NE(&from, this);
2058  const LinearExpressionProto* source =
2059  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearExpressionProto>(
2060  &from);
2061  if (source == nullptr) {
2062  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearExpressionProto)
2063  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2064  } else {
2065  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearExpressionProto)
2066  MergeFrom(*source);
2067  }
2068 }
2069 
2070 void LinearExpressionProto::MergeFrom(const LinearExpressionProto& from) {
2071 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearExpressionProto)
2072  GOOGLE_DCHECK_NE(&from, this);
2073  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2074  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2075  (void) cached_has_bits;
2076 
2077  vars_.MergeFrom(from.vars_);
2078  coeffs_.MergeFrom(from.coeffs_);
2079  if (from.offset() != 0) {
2080  _internal_set_offset(from._internal_offset());
2081  }
2082 }
2083 
2084 void LinearExpressionProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2085 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearExpressionProto)
2086  if (&from == this) return;
2087  Clear();
2088  MergeFrom(from);
2089 }
2090 
2091 void LinearExpressionProto::CopyFrom(const LinearExpressionProto& from) {
2092 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearExpressionProto)
2093  if (&from == this) return;
2094  Clear();
2095  MergeFrom(from);
2096 }
2097 
2098 bool LinearExpressionProto::IsInitialized() const {
2099  return true;
2100 }
2101 
2102 void LinearExpressionProto::InternalSwap(LinearExpressionProto* other) {
2103  using std::swap;
2104  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2105  vars_.InternalSwap(&other->vars_);
2106  coeffs_.InternalSwap(&other->coeffs_);
2107  swap(offset_, other->offset_);
2108 }
2109 
2110 ::PROTOBUF_NAMESPACE_ID::Metadata LinearExpressionProto::GetMetadata() const {
2111  return GetMetadataStatic();
2112 }
2113 
2114 
2115 // ===================================================================
2116 
2118  public:
2119  static const ::operations_research::sat::LinearExpressionProto& target(const LinearArgumentProto* msg);
2120 };
2121 
2122 const ::operations_research::sat::LinearExpressionProto&
2123 LinearArgumentProto::_Internal::target(const LinearArgumentProto* msg) {
2124  return *msg->target_;
2125 }
2126 LinearArgumentProto::LinearArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2127  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2128  exprs_(arena) {
2129  SharedCtor();
2130  RegisterArenaDtor(arena);
2131  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearArgumentProto)
2132 }
2133 LinearArgumentProto::LinearArgumentProto(const LinearArgumentProto& from)
2134  : ::PROTOBUF_NAMESPACE_ID::Message(),
2135  exprs_(from.exprs_) {
2136  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2137  if (from._internal_has_target()) {
2138  target_ = new ::operations_research::sat::LinearExpressionProto(*from.target_);
2139  } else {
2140  target_ = nullptr;
2141  }
2142  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearArgumentProto)
2143 }
2144 
2145 void LinearArgumentProto::SharedCtor() {
2146  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2147  target_ = nullptr;
2148 }
2149 
2150 LinearArgumentProto::~LinearArgumentProto() {
2151  // @@protoc_insertion_point(destructor:operations_research.sat.LinearArgumentProto)
2152  SharedDtor();
2153  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2154 }
2155 
2156 void LinearArgumentProto::SharedDtor() {
2157  GOOGLE_DCHECK(GetArena() == nullptr);
2158  if (this != internal_default_instance()) delete target_;
2159 }
2160 
2161 void LinearArgumentProto::ArenaDtor(void* object) {
2162  LinearArgumentProto* _this = reinterpret_cast< LinearArgumentProto* >(object);
2163  (void)_this;
2164 }
2165 void LinearArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2166 }
2167 void LinearArgumentProto::SetCachedSize(int size) const {
2168  _cached_size_.Set(size);
2169 }
2170 const LinearArgumentProto& LinearArgumentProto::default_instance() {
2171  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2172  return *internal_default_instance();
2173 }
2174 
2175 
2176 void LinearArgumentProto::Clear() {
2177 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearArgumentProto)
2178  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2179  // Prevent compiler warnings about cached_has_bits being unused
2180  (void) cached_has_bits;
2181 
2182  exprs_.Clear();
2183  if (GetArena() == nullptr && target_ != nullptr) {
2184  delete target_;
2185  }
2186  target_ = nullptr;
2187  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2188 }
2189 
2190 const char* LinearArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2191 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2192  while (!ctx->Done(&ptr)) {
2194  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2195  CHK_(ptr);
2196  switch (tag >> 3) {
2197  // .operations_research.sat.LinearExpressionProto target = 1;
2198  case 1:
2199  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2200  ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
2201  CHK_(ptr);
2202  } else goto handle_unusual;
2203  continue;
2204  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2205  case 2:
2206  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2207  ptr -= 1;
2208  do {
2209  ptr += 1;
2210  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
2211  CHK_(ptr);
2212  if (!ctx->DataAvailable(ptr)) break;
2213  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
2214  } else goto handle_unusual;
2215  continue;
2216  default: {
2217  handle_unusual:
2218  if ((tag & 7) == 4 || tag == 0) {
2219  ctx->SetLastTag(tag);
2220  goto success;
2221  }
2222  ptr = UnknownFieldParse(tag,
2223  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2224  ptr, ctx);
2225  CHK_(ptr != nullptr);
2226  continue;
2227  }
2228  } // switch
2229  } // while
2230 success:
2231  return ptr;
2232 failure:
2233  ptr = nullptr;
2234  goto success;
2235 #undef CHK_
2236 }
2237 
2238 ::PROTOBUF_NAMESPACE_ID::uint8* LinearArgumentProto::_InternalSerialize(
2239  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2240  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearArgumentProto)
2241  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2242  (void) cached_has_bits;
2243 
2244  // .operations_research.sat.LinearExpressionProto target = 1;
2245  if (this->has_target()) {
2246  target = stream->EnsureSpace(target);
2247  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2248  InternalWriteMessage(
2249  1, _Internal::target(this), target, stream);
2250  }
2251 
2252  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2253  for (unsigned int i = 0,
2254  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
2255  target = stream->EnsureSpace(target);
2256  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2257  InternalWriteMessage(2, this->_internal_exprs(i), target, stream);
2258  }
2259 
2260  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2261  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2262  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2263  }
2264  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearArgumentProto)
2265  return target;
2266 }
2267 
2268 size_t LinearArgumentProto::ByteSizeLong() const {
2269 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearArgumentProto)
2270  size_t total_size = 0;
2271 
2272  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2273  // Prevent compiler warnings about cached_has_bits being unused
2274  (void) cached_has_bits;
2275 
2276  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2277  total_size += 1UL * this->_internal_exprs_size();
2278  for (const auto& msg : this->exprs_) {
2279  total_size +=
2280  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2281  }
2282 
2283  // .operations_research.sat.LinearExpressionProto target = 1;
2284  if (this->has_target()) {
2285  total_size += 1 +
2286  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2287  *target_);
2288  }
2289 
2290  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2291  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2292  _internal_metadata_, total_size, &_cached_size_);
2293  }
2294  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2295  SetCachedSize(cached_size);
2296  return total_size;
2297 }
2298 
2299 void LinearArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2300 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearArgumentProto)
2301  GOOGLE_DCHECK_NE(&from, this);
2302  const LinearArgumentProto* source =
2303  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearArgumentProto>(
2304  &from);
2305  if (source == nullptr) {
2306  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearArgumentProto)
2307  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2308  } else {
2309  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearArgumentProto)
2310  MergeFrom(*source);
2311  }
2312 }
2313 
2314 void LinearArgumentProto::MergeFrom(const LinearArgumentProto& from) {
2315 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearArgumentProto)
2316  GOOGLE_DCHECK_NE(&from, this);
2317  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2318  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2319  (void) cached_has_bits;
2320 
2321  exprs_.MergeFrom(from.exprs_);
2322  if (from.has_target()) {
2323  _internal_mutable_target()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_target());
2324  }
2325 }
2326 
2327 void LinearArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2328 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearArgumentProto)
2329  if (&from == this) return;
2330  Clear();
2331  MergeFrom(from);
2332 }
2333 
2334 void LinearArgumentProto::CopyFrom(const LinearArgumentProto& from) {
2335 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearArgumentProto)
2336  if (&from == this) return;
2337  Clear();
2338  MergeFrom(from);
2339 }
2340 
2341 bool LinearArgumentProto::IsInitialized() const {
2342  return true;
2343 }
2344 
2345 void LinearArgumentProto::InternalSwap(LinearArgumentProto* other) {
2346  using std::swap;
2347  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2348  exprs_.InternalSwap(&other->exprs_);
2349  swap(target_, other->target_);
2350 }
2351 
2352 ::PROTOBUF_NAMESPACE_ID::Metadata LinearArgumentProto::GetMetadata() const {
2353  return GetMetadataStatic();
2354 }
2355 
2356 
2357 // ===================================================================
2358 
2360  public:
2361 };
2362 
2363 AllDifferentConstraintProto::AllDifferentConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2364  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2365  vars_(arena) {
2366  SharedCtor();
2367  RegisterArenaDtor(arena);
2368  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AllDifferentConstraintProto)
2369 }
2370 AllDifferentConstraintProto::AllDifferentConstraintProto(const AllDifferentConstraintProto& from)
2371  : ::PROTOBUF_NAMESPACE_ID::Message(),
2372  vars_(from.vars_) {
2373  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2374  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AllDifferentConstraintProto)
2375 }
2376 
2377 void AllDifferentConstraintProto::SharedCtor() {
2378 }
2379 
2380 AllDifferentConstraintProto::~AllDifferentConstraintProto() {
2381  // @@protoc_insertion_point(destructor:operations_research.sat.AllDifferentConstraintProto)
2382  SharedDtor();
2383  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2384 }
2385 
2386 void AllDifferentConstraintProto::SharedDtor() {
2387  GOOGLE_DCHECK(GetArena() == nullptr);
2388 }
2389 
2390 void AllDifferentConstraintProto::ArenaDtor(void* object) {
2391  AllDifferentConstraintProto* _this = reinterpret_cast< AllDifferentConstraintProto* >(object);
2392  (void)_this;
2393 }
2394 void AllDifferentConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2395 }
2396 void AllDifferentConstraintProto::SetCachedSize(int size) const {
2397  _cached_size_.Set(size);
2398 }
2399 const AllDifferentConstraintProto& AllDifferentConstraintProto::default_instance() {
2400  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2401  return *internal_default_instance();
2402 }
2403 
2404 
2405 void AllDifferentConstraintProto::Clear() {
2406 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AllDifferentConstraintProto)
2407  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2408  // Prevent compiler warnings about cached_has_bits being unused
2409  (void) cached_has_bits;
2410 
2411  vars_.Clear();
2412  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2413 }
2414 
2415 const char* AllDifferentConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2416 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2417  while (!ctx->Done(&ptr)) {
2419  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2420  CHK_(ptr);
2421  switch (tag >> 3) {
2422  // repeated int32 vars = 1;
2423  case 1:
2424  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2425  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2426  CHK_(ptr);
2427  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2428  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2429  CHK_(ptr);
2430  } else goto handle_unusual;
2431  continue;
2432  default: {
2433  handle_unusual:
2434  if ((tag & 7) == 4 || tag == 0) {
2435  ctx->SetLastTag(tag);
2436  goto success;
2437  }
2438  ptr = UnknownFieldParse(tag,
2439  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2440  ptr, ctx);
2441  CHK_(ptr != nullptr);
2442  continue;
2443  }
2444  } // switch
2445  } // while
2446 success:
2447  return ptr;
2448 failure:
2449  ptr = nullptr;
2450  goto success;
2451 #undef CHK_
2452 }
2453 
2454 ::PROTOBUF_NAMESPACE_ID::uint8* AllDifferentConstraintProto::_InternalSerialize(
2455  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2456  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AllDifferentConstraintProto)
2457  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2458  (void) cached_has_bits;
2459 
2460  // repeated int32 vars = 1;
2461  {
2462  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2463  if (byte_size > 0) {
2464  target = stream->WriteInt32Packed(
2465  1, _internal_vars(), byte_size, target);
2466  }
2467  }
2468 
2469  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2470  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2471  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2472  }
2473  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AllDifferentConstraintProto)
2474  return target;
2475 }
2476 
2477 size_t AllDifferentConstraintProto::ByteSizeLong() const {
2478 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AllDifferentConstraintProto)
2479  size_t total_size = 0;
2480 
2481  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2482  // Prevent compiler warnings about cached_has_bits being unused
2483  (void) cached_has_bits;
2484 
2485  // repeated int32 vars = 1;
2486  {
2487  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2488  Int32Size(this->vars_);
2489  if (data_size > 0) {
2490  total_size += 1 +
2491  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2492  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2493  }
2494  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2495  _vars_cached_byte_size_.store(cached_size,
2496  std::memory_order_relaxed);
2497  total_size += data_size;
2498  }
2499 
2500  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2501  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2502  _internal_metadata_, total_size, &_cached_size_);
2503  }
2504  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2505  SetCachedSize(cached_size);
2506  return total_size;
2507 }
2508 
2509 void AllDifferentConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2510 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2511  GOOGLE_DCHECK_NE(&from, this);
2512  const AllDifferentConstraintProto* source =
2513  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AllDifferentConstraintProto>(
2514  &from);
2515  if (source == nullptr) {
2516  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AllDifferentConstraintProto)
2517  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2518  } else {
2519  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AllDifferentConstraintProto)
2520  MergeFrom(*source);
2521  }
2522 }
2523 
2524 void AllDifferentConstraintProto::MergeFrom(const AllDifferentConstraintProto& from) {
2525 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2526  GOOGLE_DCHECK_NE(&from, this);
2527  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2528  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2529  (void) cached_has_bits;
2530 
2531  vars_.MergeFrom(from.vars_);
2532 }
2533 
2534 void AllDifferentConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2535 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2536  if (&from == this) return;
2537  Clear();
2538  MergeFrom(from);
2539 }
2540 
2541 void AllDifferentConstraintProto::CopyFrom(const AllDifferentConstraintProto& from) {
2542 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2543  if (&from == this) return;
2544  Clear();
2545  MergeFrom(from);
2546 }
2547 
2548 bool AllDifferentConstraintProto::IsInitialized() const {
2549  return true;
2550 }
2551 
2552 void AllDifferentConstraintProto::InternalSwap(AllDifferentConstraintProto* other) {
2553  using std::swap;
2554  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2555  vars_.InternalSwap(&other->vars_);
2556 }
2557 
2558 ::PROTOBUF_NAMESPACE_ID::Metadata AllDifferentConstraintProto::GetMetadata() const {
2559  return GetMetadataStatic();
2560 }
2561 
2562 
2563 // ===================================================================
2564 
2566  public:
2567 };
2568 
2569 LinearConstraintProto::LinearConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2570  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2571  vars_(arena),
2572  coeffs_(arena),
2573  domain_(arena) {
2574  SharedCtor();
2575  RegisterArenaDtor(arena);
2576  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearConstraintProto)
2577 }
2578 LinearConstraintProto::LinearConstraintProto(const LinearConstraintProto& from)
2579  : ::PROTOBUF_NAMESPACE_ID::Message(),
2580  vars_(from.vars_),
2581  coeffs_(from.coeffs_),
2582  domain_(from.domain_) {
2583  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2584  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearConstraintProto)
2585 }
2586 
2587 void LinearConstraintProto::SharedCtor() {
2588 }
2589 
2590 LinearConstraintProto::~LinearConstraintProto() {
2591  // @@protoc_insertion_point(destructor:operations_research.sat.LinearConstraintProto)
2592  SharedDtor();
2593  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2594 }
2595 
2596 void LinearConstraintProto::SharedDtor() {
2597  GOOGLE_DCHECK(GetArena() == nullptr);
2598 }
2599 
2600 void LinearConstraintProto::ArenaDtor(void* object) {
2601  LinearConstraintProto* _this = reinterpret_cast< LinearConstraintProto* >(object);
2602  (void)_this;
2603 }
2604 void LinearConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2605 }
2606 void LinearConstraintProto::SetCachedSize(int size) const {
2607  _cached_size_.Set(size);
2608 }
2609 const LinearConstraintProto& LinearConstraintProto::default_instance() {
2610  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2611  return *internal_default_instance();
2612 }
2613 
2614 
2615 void LinearConstraintProto::Clear() {
2616 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearConstraintProto)
2617  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2618  // Prevent compiler warnings about cached_has_bits being unused
2619  (void) cached_has_bits;
2620 
2621  vars_.Clear();
2622  coeffs_.Clear();
2623  domain_.Clear();
2624  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2625 }
2626 
2627 const char* LinearConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2628 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2629  while (!ctx->Done(&ptr)) {
2631  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2632  CHK_(ptr);
2633  switch (tag >> 3) {
2634  // repeated int32 vars = 1;
2635  case 1:
2636  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2637  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2638  CHK_(ptr);
2639  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2640  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2641  CHK_(ptr);
2642  } else goto handle_unusual;
2643  continue;
2644  // repeated int64 coeffs = 2;
2645  case 2:
2646  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2647  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
2648  CHK_(ptr);
2649  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
2650  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2651  CHK_(ptr);
2652  } else goto handle_unusual;
2653  continue;
2654  // repeated int64 domain = 3;
2655  case 3:
2656  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2657  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
2658  CHK_(ptr);
2659  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2660  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2661  CHK_(ptr);
2662  } else goto handle_unusual;
2663  continue;
2664  default: {
2665  handle_unusual:
2666  if ((tag & 7) == 4 || tag == 0) {
2667  ctx->SetLastTag(tag);
2668  goto success;
2669  }
2670  ptr = UnknownFieldParse(tag,
2671  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2672  ptr, ctx);
2673  CHK_(ptr != nullptr);
2674  continue;
2675  }
2676  } // switch
2677  } // while
2678 success:
2679  return ptr;
2680 failure:
2681  ptr = nullptr;
2682  goto success;
2683 #undef CHK_
2684 }
2685 
2686 ::PROTOBUF_NAMESPACE_ID::uint8* LinearConstraintProto::_InternalSerialize(
2687  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2688  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearConstraintProto)
2689  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2690  (void) cached_has_bits;
2691 
2692  // repeated int32 vars = 1;
2693  {
2694  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2695  if (byte_size > 0) {
2696  target = stream->WriteInt32Packed(
2697  1, _internal_vars(), byte_size, target);
2698  }
2699  }
2700 
2701  // repeated int64 coeffs = 2;
2702  {
2703  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
2704  if (byte_size > 0) {
2705  target = stream->WriteInt64Packed(
2706  2, _internal_coeffs(), byte_size, target);
2707  }
2708  }
2709 
2710  // repeated int64 domain = 3;
2711  {
2712  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
2713  if (byte_size > 0) {
2714  target = stream->WriteInt64Packed(
2715  3, _internal_domain(), byte_size, target);
2716  }
2717  }
2718 
2719  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2720  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2721  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2722  }
2723  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearConstraintProto)
2724  return target;
2725 }
2726 
2727 size_t LinearConstraintProto::ByteSizeLong() const {
2728 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearConstraintProto)
2729  size_t total_size = 0;
2730 
2731  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2732  // Prevent compiler warnings about cached_has_bits being unused
2733  (void) cached_has_bits;
2734 
2735  // repeated int32 vars = 1;
2736  {
2737  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2738  Int32Size(this->vars_);
2739  if (data_size > 0) {
2740  total_size += 1 +
2741  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2742  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2743  }
2744  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2745  _vars_cached_byte_size_.store(cached_size,
2746  std::memory_order_relaxed);
2747  total_size += data_size;
2748  }
2749 
2750  // repeated int64 coeffs = 2;
2751  {
2752  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2753  Int64Size(this->coeffs_);
2754  if (data_size > 0) {
2755  total_size += 1 +
2756  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2757  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2758  }
2759  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2760  _coeffs_cached_byte_size_.store(cached_size,
2761  std::memory_order_relaxed);
2762  total_size += data_size;
2763  }
2764 
2765  // repeated int64 domain = 3;
2766  {
2767  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2768  Int64Size(this->domain_);
2769  if (data_size > 0) {
2770  total_size += 1 +
2771  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2772  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2773  }
2774  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2775  _domain_cached_byte_size_.store(cached_size,
2776  std::memory_order_relaxed);
2777  total_size += data_size;
2778  }
2779 
2780  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2781  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2782  _internal_metadata_, total_size, &_cached_size_);
2783  }
2784  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2785  SetCachedSize(cached_size);
2786  return total_size;
2787 }
2788 
2789 void LinearConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2790 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearConstraintProto)
2791  GOOGLE_DCHECK_NE(&from, this);
2792  const LinearConstraintProto* source =
2793  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearConstraintProto>(
2794  &from);
2795  if (source == nullptr) {
2796  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearConstraintProto)
2797  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2798  } else {
2799  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearConstraintProto)
2800  MergeFrom(*source);
2801  }
2802 }
2803 
2804 void LinearConstraintProto::MergeFrom(const LinearConstraintProto& from) {
2805 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearConstraintProto)
2806  GOOGLE_DCHECK_NE(&from, this);
2807  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2808  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2809  (void) cached_has_bits;
2810 
2811  vars_.MergeFrom(from.vars_);
2812  coeffs_.MergeFrom(from.coeffs_);
2813  domain_.MergeFrom(from.domain_);
2814 }
2815 
2816 void LinearConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2817 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearConstraintProto)
2818  if (&from == this) return;
2819  Clear();
2820  MergeFrom(from);
2821 }
2822 
2823 void LinearConstraintProto::CopyFrom(const LinearConstraintProto& from) {
2824 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearConstraintProto)
2825  if (&from == this) return;
2826  Clear();
2827  MergeFrom(from);
2828 }
2829 
2830 bool LinearConstraintProto::IsInitialized() const {
2831  return true;
2832 }
2833 
2834 void LinearConstraintProto::InternalSwap(LinearConstraintProto* other) {
2835  using std::swap;
2836  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2837  vars_.InternalSwap(&other->vars_);
2838  coeffs_.InternalSwap(&other->coeffs_);
2839  domain_.InternalSwap(&other->domain_);
2840 }
2841 
2842 ::PROTOBUF_NAMESPACE_ID::Metadata LinearConstraintProto::GetMetadata() const {
2843  return GetMetadataStatic();
2844 }
2845 
2846 
2847 // ===================================================================
2848 
2850  public:
2851 };
2852 
2853 ElementConstraintProto::ElementConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2854  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2855  vars_(arena) {
2856  SharedCtor();
2857  RegisterArenaDtor(arena);
2858  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ElementConstraintProto)
2859 }
2860 ElementConstraintProto::ElementConstraintProto(const ElementConstraintProto& from)
2861  : ::PROTOBUF_NAMESPACE_ID::Message(),
2862  vars_(from.vars_) {
2863  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2864  ::memcpy(&index_, &from.index_,
2865  static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2866  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2867  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ElementConstraintProto)
2868 }
2869 
2870 void ElementConstraintProto::SharedCtor() {
2871  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2872  reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
2873  0, static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2874  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2875 }
2876 
2877 ElementConstraintProto::~ElementConstraintProto() {
2878  // @@protoc_insertion_point(destructor:operations_research.sat.ElementConstraintProto)
2879  SharedDtor();
2880  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2881 }
2882 
2883 void ElementConstraintProto::SharedDtor() {
2884  GOOGLE_DCHECK(GetArena() == nullptr);
2885 }
2886 
2887 void ElementConstraintProto::ArenaDtor(void* object) {
2888  ElementConstraintProto* _this = reinterpret_cast< ElementConstraintProto* >(object);
2889  (void)_this;
2890 }
2891 void ElementConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2892 }
2893 void ElementConstraintProto::SetCachedSize(int size) const {
2894  _cached_size_.Set(size);
2895 }
2896 const ElementConstraintProto& ElementConstraintProto::default_instance() {
2897  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2898  return *internal_default_instance();
2899 }
2900 
2901 
2902 void ElementConstraintProto::Clear() {
2903 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ElementConstraintProto)
2904  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2905  // Prevent compiler warnings about cached_has_bits being unused
2906  (void) cached_has_bits;
2907 
2908  vars_.Clear();
2909  ::memset(&index_, 0, static_cast<size_t>(
2910  reinterpret_cast<char*>(&target_) -
2911  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2912  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2913 }
2914 
2915 const char* ElementConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2916 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2917  while (!ctx->Done(&ptr)) {
2919  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2920  CHK_(ptr);
2921  switch (tag >> 3) {
2922  // int32 index = 1;
2923  case 1:
2924  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2925  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2926  CHK_(ptr);
2927  } else goto handle_unusual;
2928  continue;
2929  // int32 target = 2;
2930  case 2:
2931  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2932  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2933  CHK_(ptr);
2934  } else goto handle_unusual;
2935  continue;
2936  // repeated int32 vars = 3;
2937  case 3:
2938  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2939  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2940  CHK_(ptr);
2941  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2942  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2943  CHK_(ptr);
2944  } else goto handle_unusual;
2945  continue;
2946  default: {
2947  handle_unusual:
2948  if ((tag & 7) == 4 || tag == 0) {
2949  ctx->SetLastTag(tag);
2950  goto success;
2951  }
2952  ptr = UnknownFieldParse(tag,
2953  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2954  ptr, ctx);
2955  CHK_(ptr != nullptr);
2956  continue;
2957  }
2958  } // switch
2959  } // while
2960 success:
2961  return ptr;
2962 failure:
2963  ptr = nullptr;
2964  goto success;
2965 #undef CHK_
2966 }
2967 
2968 ::PROTOBUF_NAMESPACE_ID::uint8* ElementConstraintProto::_InternalSerialize(
2969  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2970  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ElementConstraintProto)
2971  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2972  (void) cached_has_bits;
2973 
2974  // int32 index = 1;
2975  if (this->index() != 0) {
2976  target = stream->EnsureSpace(target);
2977  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
2978  }
2979 
2980  // int32 target = 2;
2981  if (this->target() != 0) {
2982  target = stream->EnsureSpace(target);
2983  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_target(), target);
2984  }
2985 
2986  // repeated int32 vars = 3;
2987  {
2988  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2989  if (byte_size > 0) {
2990  target = stream->WriteInt32Packed(
2991  3, _internal_vars(), byte_size, target);
2992  }
2993  }
2994 
2995  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2996  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2997  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2998  }
2999  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ElementConstraintProto)
3000  return target;
3001 }
3002 
3003 size_t ElementConstraintProto::ByteSizeLong() const {
3004 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ElementConstraintProto)
3005  size_t total_size = 0;
3006 
3007  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3008  // Prevent compiler warnings about cached_has_bits being unused
3009  (void) cached_has_bits;
3010 
3011  // repeated int32 vars = 3;
3012  {
3013  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3014  Int32Size(this->vars_);
3015  if (data_size > 0) {
3016  total_size += 1 +
3017  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3018  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3019  }
3020  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3021  _vars_cached_byte_size_.store(cached_size,
3022  std::memory_order_relaxed);
3023  total_size += data_size;
3024  }
3025 
3026  // int32 index = 1;
3027  if (this->index() != 0) {
3028  total_size += 1 +
3029  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3030  this->_internal_index());
3031  }
3032 
3033  // int32 target = 2;
3034  if (this->target() != 0) {
3035  total_size += 1 +
3036  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3037  this->_internal_target());
3038  }
3039 
3040  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3041  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3042  _internal_metadata_, total_size, &_cached_size_);
3043  }
3044  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3045  SetCachedSize(cached_size);
3046  return total_size;
3047 }
3048 
3049 void ElementConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3050 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ElementConstraintProto)
3051  GOOGLE_DCHECK_NE(&from, this);
3052  const ElementConstraintProto* source =
3053  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ElementConstraintProto>(
3054  &from);
3055  if (source == nullptr) {
3056  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ElementConstraintProto)
3057  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3058  } else {
3059  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ElementConstraintProto)
3060  MergeFrom(*source);
3061  }
3062 }
3063 
3064 void ElementConstraintProto::MergeFrom(const ElementConstraintProto& from) {
3065 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ElementConstraintProto)
3066  GOOGLE_DCHECK_NE(&from, this);
3067  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3068  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3069  (void) cached_has_bits;
3070 
3071  vars_.MergeFrom(from.vars_);
3072  if (from.index() != 0) {
3073  _internal_set_index(from._internal_index());
3074  }
3075  if (from.target() != 0) {
3076  _internal_set_target(from._internal_target());
3077  }
3078 }
3079 
3080 void ElementConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3081 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ElementConstraintProto)
3082  if (&from == this) return;
3083  Clear();
3084  MergeFrom(from);
3085 }
3086 
3087 void ElementConstraintProto::CopyFrom(const ElementConstraintProto& from) {
3088 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ElementConstraintProto)
3089  if (&from == this) return;
3090  Clear();
3091  MergeFrom(from);
3092 }
3093 
3094 bool ElementConstraintProto::IsInitialized() const {
3095  return true;
3096 }
3097 
3098 void ElementConstraintProto::InternalSwap(ElementConstraintProto* other) {
3099  using std::swap;
3100  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3101  vars_.InternalSwap(&other->vars_);
3102  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3103  PROTOBUF_FIELD_OFFSET(ElementConstraintProto, target_)
3104  + sizeof(ElementConstraintProto::target_)
3105  - PROTOBUF_FIELD_OFFSET(ElementConstraintProto, index_)>(
3106  reinterpret_cast<char*>(&index_),
3107  reinterpret_cast<char*>(&other->index_));
3108 }
3109 
3110 ::PROTOBUF_NAMESPACE_ID::Metadata ElementConstraintProto::GetMetadata() const {
3111  return GetMetadataStatic();
3112 }
3113 
3114 
3115 // ===================================================================
3116 
3118  public:
3119  static const ::operations_research::sat::LinearExpressionProto& start_view(const IntervalConstraintProto* msg);
3120  static const ::operations_research::sat::LinearExpressionProto& end_view(const IntervalConstraintProto* msg);
3121  static const ::operations_research::sat::LinearExpressionProto& size_view(const IntervalConstraintProto* msg);
3122 };
3123 
3124 const ::operations_research::sat::LinearExpressionProto&
3125 IntervalConstraintProto::_Internal::start_view(const IntervalConstraintProto* msg) {
3126  return *msg->start_view_;
3127 }
3128 const ::operations_research::sat::LinearExpressionProto&
3129 IntervalConstraintProto::_Internal::end_view(const IntervalConstraintProto* msg) {
3130  return *msg->end_view_;
3131 }
3132 const ::operations_research::sat::LinearExpressionProto&
3133 IntervalConstraintProto::_Internal::size_view(const IntervalConstraintProto* msg) {
3134  return *msg->size_view_;
3135 }
3136 IntervalConstraintProto::IntervalConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3137  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
3138  SharedCtor();
3139  RegisterArenaDtor(arena);
3140  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntervalConstraintProto)
3141 }
3142 IntervalConstraintProto::IntervalConstraintProto(const IntervalConstraintProto& from)
3143  : ::PROTOBUF_NAMESPACE_ID::Message() {
3144  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3145  if (from._internal_has_start_view()) {
3146  start_view_ = new ::operations_research::sat::LinearExpressionProto(*from.start_view_);
3147  } else {
3148  start_view_ = nullptr;
3149  }
3150  if (from._internal_has_end_view()) {
3151  end_view_ = new ::operations_research::sat::LinearExpressionProto(*from.end_view_);
3152  } else {
3153  end_view_ = nullptr;
3154  }
3155  if (from._internal_has_size_view()) {
3156  size_view_ = new ::operations_research::sat::LinearExpressionProto(*from.size_view_);
3157  } else {
3158  size_view_ = nullptr;
3159  }
3160  ::memcpy(&start_, &from.start_,
3161  static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3162  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3163  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntervalConstraintProto)
3164 }
3165 
3166 void IntervalConstraintProto::SharedCtor() {
3167  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3168  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3169  reinterpret_cast<char*>(&start_view_) - reinterpret_cast<char*>(this)),
3170  0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3171  reinterpret_cast<char*>(&start_view_)) + sizeof(size_));
3172 }
3173 
3174 IntervalConstraintProto::~IntervalConstraintProto() {
3175  // @@protoc_insertion_point(destructor:operations_research.sat.IntervalConstraintProto)
3176  SharedDtor();
3177  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3178 }
3179 
3180 void IntervalConstraintProto::SharedDtor() {
3181  GOOGLE_DCHECK(GetArena() == nullptr);
3182  if (this != internal_default_instance()) delete start_view_;
3183  if (this != internal_default_instance()) delete end_view_;
3184  if (this != internal_default_instance()) delete size_view_;
3185 }
3186 
3187 void IntervalConstraintProto::ArenaDtor(void* object) {
3188  IntervalConstraintProto* _this = reinterpret_cast< IntervalConstraintProto* >(object);
3189  (void)_this;
3190 }
3191 void IntervalConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3192 }
3193 void IntervalConstraintProto::SetCachedSize(int size) const {
3194  _cached_size_.Set(size);
3195 }
3196 const IntervalConstraintProto& IntervalConstraintProto::default_instance() {
3197  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3198  return *internal_default_instance();
3199 }
3200 
3201 
3202 void IntervalConstraintProto::Clear() {
3203 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntervalConstraintProto)
3204  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3205  // Prevent compiler warnings about cached_has_bits being unused
3206  (void) cached_has_bits;
3207 
3208  if (GetArena() == nullptr && start_view_ != nullptr) {
3209  delete start_view_;
3210  }
3211  start_view_ = nullptr;
3212  if (GetArena() == nullptr && end_view_ != nullptr) {
3213  delete end_view_;
3214  }
3215  end_view_ = nullptr;
3216  if (GetArena() == nullptr && size_view_ != nullptr) {
3217  delete size_view_;
3218  }
3219  size_view_ = nullptr;
3220  ::memset(&start_, 0, static_cast<size_t>(
3221  reinterpret_cast<char*>(&size_) -
3222  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3223  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3224 }
3225 
3226 const char* IntervalConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3227 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3228  while (!ctx->Done(&ptr)) {
3230  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3231  CHK_(ptr);
3232  switch (tag >> 3) {
3233  // int32 start = 1;
3234  case 1:
3235  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3236  start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3237  CHK_(ptr);
3238  } else goto handle_unusual;
3239  continue;
3240  // int32 end = 2;
3241  case 2:
3242  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
3243  end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3244  CHK_(ptr);
3245  } else goto handle_unusual;
3246  continue;
3247  // int32 size = 3;
3248  case 3:
3249  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3250  size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3251  CHK_(ptr);
3252  } else goto handle_unusual;
3253  continue;
3254  // .operations_research.sat.LinearExpressionProto start_view = 4;
3255  case 4:
3256  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
3257  ptr = ctx->ParseMessage(_internal_mutable_start_view(), ptr);
3258  CHK_(ptr);
3259  } else goto handle_unusual;
3260  continue;
3261  // .operations_research.sat.LinearExpressionProto end_view = 5;
3262  case 5:
3263  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
3264  ptr = ctx->ParseMessage(_internal_mutable_end_view(), ptr);
3265  CHK_(ptr);
3266  } else goto handle_unusual;
3267  continue;
3268  // .operations_research.sat.LinearExpressionProto size_view = 6;
3269  case 6:
3270  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
3271  ptr = ctx->ParseMessage(_internal_mutable_size_view(), ptr);
3272  CHK_(ptr);
3273  } else goto handle_unusual;
3274  continue;
3275  default: {
3276  handle_unusual:
3277  if ((tag & 7) == 4 || tag == 0) {
3278  ctx->SetLastTag(tag);
3279  goto success;
3280  }
3281  ptr = UnknownFieldParse(tag,
3282  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3283  ptr, ctx);
3284  CHK_(ptr != nullptr);
3285  continue;
3286  }
3287  } // switch
3288  } // while
3289 success:
3290  return ptr;
3291 failure:
3292  ptr = nullptr;
3293  goto success;
3294 #undef CHK_
3295 }
3296 
3297 ::PROTOBUF_NAMESPACE_ID::uint8* IntervalConstraintProto::_InternalSerialize(
3298  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3299  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntervalConstraintProto)
3300  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3301  (void) cached_has_bits;
3302 
3303  // int32 start = 1;
3304  if (this->start() != 0) {
3305  target = stream->EnsureSpace(target);
3306  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_start(), target);
3307  }
3308 
3309  // int32 end = 2;
3310  if (this->end() != 0) {
3311  target = stream->EnsureSpace(target);
3312  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end(), target);
3313  }
3314 
3315  // int32 size = 3;
3316  if (this->size() != 0) {
3317  target = stream->EnsureSpace(target);
3318  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_size(), target);
3319  }
3320 
3321  // .operations_research.sat.LinearExpressionProto start_view = 4;
3322  if (this->has_start_view()) {
3323  target = stream->EnsureSpace(target);
3324  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3325  InternalWriteMessage(
3326  4, _Internal::start_view(this), target, stream);
3327  }
3328 
3329  // .operations_research.sat.LinearExpressionProto end_view = 5;
3330  if (this->has_end_view()) {
3331  target = stream->EnsureSpace(target);
3332  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3333  InternalWriteMessage(
3334  5, _Internal::end_view(this), target, stream);
3335  }
3336 
3337  // .operations_research.sat.LinearExpressionProto size_view = 6;
3338  if (this->has_size_view()) {
3339  target = stream->EnsureSpace(target);
3340  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3341  InternalWriteMessage(
3342  6, _Internal::size_view(this), target, stream);
3343  }
3344 
3345  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3346  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3347  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3348  }
3349  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntervalConstraintProto)
3350  return target;
3351 }
3352 
3353 size_t IntervalConstraintProto::ByteSizeLong() const {
3354 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntervalConstraintProto)
3355  size_t total_size = 0;
3356 
3357  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3358  // Prevent compiler warnings about cached_has_bits being unused
3359  (void) cached_has_bits;
3360 
3361  // .operations_research.sat.LinearExpressionProto start_view = 4;
3362  if (this->has_start_view()) {
3363  total_size += 1 +
3364  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3365  *start_view_);
3366  }
3367 
3368  // .operations_research.sat.LinearExpressionProto end_view = 5;
3369  if (this->has_end_view()) {
3370  total_size += 1 +
3371  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3372  *end_view_);
3373  }
3374 
3375  // .operations_research.sat.LinearExpressionProto size_view = 6;
3376  if (this->has_size_view()) {
3377  total_size += 1 +
3378  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3379  *size_view_);
3380  }
3381 
3382  // int32 start = 1;
3383  if (this->start() != 0) {
3384  total_size += 1 +
3385  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3386  this->_internal_start());
3387  }
3388 
3389  // int32 end = 2;
3390  if (this->end() != 0) {
3391  total_size += 1 +
3392  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3393  this->_internal_end());
3394  }
3395 
3396  // int32 size = 3;
3397  if (this->size() != 0) {
3398  total_size += 1 +
3399  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3400  this->_internal_size());
3401  }
3402 
3403  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3404  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3405  _internal_metadata_, total_size, &_cached_size_);
3406  }
3407  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3408  SetCachedSize(cached_size);
3409  return total_size;
3410 }
3411 
3412 void IntervalConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3413 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntervalConstraintProto)
3414  GOOGLE_DCHECK_NE(&from, this);
3415  const IntervalConstraintProto* source =
3416  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntervalConstraintProto>(
3417  &from);
3418  if (source == nullptr) {
3419  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntervalConstraintProto)
3420  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3421  } else {
3422  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntervalConstraintProto)
3423  MergeFrom(*source);
3424  }
3425 }
3426 
3427 void IntervalConstraintProto::MergeFrom(const IntervalConstraintProto& from) {
3428 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntervalConstraintProto)
3429  GOOGLE_DCHECK_NE(&from, this);
3430  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3431  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3432  (void) cached_has_bits;
3433 
3434  if (from.has_start_view()) {
3435  _internal_mutable_start_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_start_view());
3436  }
3437  if (from.has_end_view()) {
3438  _internal_mutable_end_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_end_view());
3439  }
3440  if (from.has_size_view()) {
3441  _internal_mutable_size_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_size_view());
3442  }
3443  if (from.start() != 0) {
3444  _internal_set_start(from._internal_start());
3445  }
3446  if (from.end() != 0) {
3447  _internal_set_end(from._internal_end());
3448  }
3449  if (from.size() != 0) {
3450  _internal_set_size(from._internal_size());
3451  }
3452 }
3453 
3454 void IntervalConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3455 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntervalConstraintProto)
3456  if (&from == this) return;
3457  Clear();
3458  MergeFrom(from);
3459 }
3460 
3461 void IntervalConstraintProto::CopyFrom(const IntervalConstraintProto& from) {
3462 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntervalConstraintProto)
3463  if (&from == this) return;
3464  Clear();
3465  MergeFrom(from);
3466 }
3467 
3468 bool IntervalConstraintProto::IsInitialized() const {
3469  return true;
3470 }
3471 
3472 void IntervalConstraintProto::InternalSwap(IntervalConstraintProto* other) {
3473  using std::swap;
3474  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3475  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3476  PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, size_)
3477  + sizeof(IntervalConstraintProto::size_)
3478  - PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, start_view_)>(
3479  reinterpret_cast<char*>(&start_view_),
3480  reinterpret_cast<char*>(&other->start_view_));
3481 }
3482 
3483 ::PROTOBUF_NAMESPACE_ID::Metadata IntervalConstraintProto::GetMetadata() const {
3484  return GetMetadataStatic();
3485 }
3486 
3487 
3488 // ===================================================================
3489 
3491  public:
3492 };
3493 
3494 NoOverlapConstraintProto::NoOverlapConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3495  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3496  intervals_(arena) {
3497  SharedCtor();
3498  RegisterArenaDtor(arena);
3499  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlapConstraintProto)
3500 }
3501 NoOverlapConstraintProto::NoOverlapConstraintProto(const NoOverlapConstraintProto& from)
3502  : ::PROTOBUF_NAMESPACE_ID::Message(),
3503  intervals_(from.intervals_) {
3504  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3505  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlapConstraintProto)
3506 }
3507 
3508 void NoOverlapConstraintProto::SharedCtor() {
3509 }
3510 
3511 NoOverlapConstraintProto::~NoOverlapConstraintProto() {
3512  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlapConstraintProto)
3513  SharedDtor();
3514  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3515 }
3516 
3517 void NoOverlapConstraintProto::SharedDtor() {
3518  GOOGLE_DCHECK(GetArena() == nullptr);
3519 }
3520 
3521 void NoOverlapConstraintProto::ArenaDtor(void* object) {
3522  NoOverlapConstraintProto* _this = reinterpret_cast< NoOverlapConstraintProto* >(object);
3523  (void)_this;
3524 }
3525 void NoOverlapConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3526 }
3527 void NoOverlapConstraintProto::SetCachedSize(int size) const {
3528  _cached_size_.Set(size);
3529 }
3530 const NoOverlapConstraintProto& NoOverlapConstraintProto::default_instance() {
3531  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3532  return *internal_default_instance();
3533 }
3534 
3535 
3536 void NoOverlapConstraintProto::Clear() {
3537 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlapConstraintProto)
3538  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3539  // Prevent compiler warnings about cached_has_bits being unused
3540  (void) cached_has_bits;
3541 
3542  intervals_.Clear();
3543  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3544 }
3545 
3546 const char* NoOverlapConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3547 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3548  while (!ctx->Done(&ptr)) {
3550  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3551  CHK_(ptr);
3552  switch (tag >> 3) {
3553  // repeated int32 intervals = 1;
3554  case 1:
3555  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3556  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3557  CHK_(ptr);
3558  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3559  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3560  CHK_(ptr);
3561  } else goto handle_unusual;
3562  continue;
3563  default: {
3564  handle_unusual:
3565  if ((tag & 7) == 4 || tag == 0) {
3566  ctx->SetLastTag(tag);
3567  goto success;
3568  }
3569  ptr = UnknownFieldParse(tag,
3570  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3571  ptr, ctx);
3572  CHK_(ptr != nullptr);
3573  continue;
3574  }
3575  } // switch
3576  } // while
3577 success:
3578  return ptr;
3579 failure:
3580  ptr = nullptr;
3581  goto success;
3582 #undef CHK_
3583 }
3584 
3585 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlapConstraintProto::_InternalSerialize(
3586  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3587  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlapConstraintProto)
3588  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3589  (void) cached_has_bits;
3590 
3591  // repeated int32 intervals = 1;
3592  {
3593  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3594  if (byte_size > 0) {
3595  target = stream->WriteInt32Packed(
3596  1, _internal_intervals(), byte_size, target);
3597  }
3598  }
3599 
3600  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3601  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3602  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3603  }
3604  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlapConstraintProto)
3605  return target;
3606 }
3607 
3608 size_t NoOverlapConstraintProto::ByteSizeLong() const {
3609 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlapConstraintProto)
3610  size_t total_size = 0;
3611 
3612  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3613  // Prevent compiler warnings about cached_has_bits being unused
3614  (void) cached_has_bits;
3615 
3616  // repeated int32 intervals = 1;
3617  {
3618  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3619  Int32Size(this->intervals_);
3620  if (data_size > 0) {
3621  total_size += 1 +
3622  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3623  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3624  }
3625  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3626  _intervals_cached_byte_size_.store(cached_size,
3627  std::memory_order_relaxed);
3628  total_size += data_size;
3629  }
3630 
3631  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3632  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3633  _internal_metadata_, total_size, &_cached_size_);
3634  }
3635  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3636  SetCachedSize(cached_size);
3637  return total_size;
3638 }
3639 
3640 void NoOverlapConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3641 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3642  GOOGLE_DCHECK_NE(&from, this);
3643  const NoOverlapConstraintProto* source =
3644  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlapConstraintProto>(
3645  &from);
3646  if (source == nullptr) {
3647  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlapConstraintProto)
3648  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3649  } else {
3650  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlapConstraintProto)
3651  MergeFrom(*source);
3652  }
3653 }
3654 
3655 void NoOverlapConstraintProto::MergeFrom(const NoOverlapConstraintProto& from) {
3656 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3657  GOOGLE_DCHECK_NE(&from, this);
3658  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3659  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3660  (void) cached_has_bits;
3661 
3662  intervals_.MergeFrom(from.intervals_);
3663 }
3664 
3665 void NoOverlapConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3666 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3667  if (&from == this) return;
3668  Clear();
3669  MergeFrom(from);
3670 }
3671 
3672 void NoOverlapConstraintProto::CopyFrom(const NoOverlapConstraintProto& from) {
3673 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3674  if (&from == this) return;
3675  Clear();
3676  MergeFrom(from);
3677 }
3678 
3679 bool NoOverlapConstraintProto::IsInitialized() const {
3680  return true;
3681 }
3682 
3683 void NoOverlapConstraintProto::InternalSwap(NoOverlapConstraintProto* other) {
3684  using std::swap;
3685  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3686  intervals_.InternalSwap(&other->intervals_);
3687 }
3688 
3689 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlapConstraintProto::GetMetadata() const {
3690  return GetMetadataStatic();
3691 }
3692 
3693 
3694 // ===================================================================
3695 
3697  public:
3698 };
3699 
3700 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3701  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3702  x_intervals_(arena),
3703  y_intervals_(arena) {
3704  SharedCtor();
3705  RegisterArenaDtor(arena);
3706  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3707 }
3708 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(const NoOverlap2DConstraintProto& from)
3709  : ::PROTOBUF_NAMESPACE_ID::Message(),
3710  x_intervals_(from.x_intervals_),
3711  y_intervals_(from.y_intervals_) {
3712  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3713  boxes_with_null_area_can_overlap_ = from.boxes_with_null_area_can_overlap_;
3714  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3715 }
3716 
3717 void NoOverlap2DConstraintProto::SharedCtor() {
3718  boxes_with_null_area_can_overlap_ = false;
3719 }
3720 
3721 NoOverlap2DConstraintProto::~NoOverlap2DConstraintProto() {
3722  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlap2DConstraintProto)
3723  SharedDtor();
3724  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3725 }
3726 
3727 void NoOverlap2DConstraintProto::SharedDtor() {
3728  GOOGLE_DCHECK(GetArena() == nullptr);
3729 }
3730 
3731 void NoOverlap2DConstraintProto::ArenaDtor(void* object) {
3732  NoOverlap2DConstraintProto* _this = reinterpret_cast< NoOverlap2DConstraintProto* >(object);
3733  (void)_this;
3734 }
3735 void NoOverlap2DConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3736 }
3737 void NoOverlap2DConstraintProto::SetCachedSize(int size) const {
3738  _cached_size_.Set(size);
3739 }
3740 const NoOverlap2DConstraintProto& NoOverlap2DConstraintProto::default_instance() {
3741  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3742  return *internal_default_instance();
3743 }
3744 
3745 
3746 void NoOverlap2DConstraintProto::Clear() {
3747 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlap2DConstraintProto)
3748  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3749  // Prevent compiler warnings about cached_has_bits being unused
3750  (void) cached_has_bits;
3751 
3752  x_intervals_.Clear();
3753  y_intervals_.Clear();
3754  boxes_with_null_area_can_overlap_ = false;
3755  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3756 }
3757 
3758 const char* NoOverlap2DConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3759 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3760  while (!ctx->Done(&ptr)) {
3762  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3763  CHK_(ptr);
3764  switch (tag >> 3) {
3765  // repeated int32 x_intervals = 1;
3766  case 1:
3767  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3768  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_x_intervals(), ptr, ctx);
3769  CHK_(ptr);
3770  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3771  _internal_add_x_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3772  CHK_(ptr);
3773  } else goto handle_unusual;
3774  continue;
3775  // repeated int32 y_intervals = 2;
3776  case 2:
3777  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3778  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_y_intervals(), ptr, ctx);
3779  CHK_(ptr);
3780  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3781  _internal_add_y_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3782  CHK_(ptr);
3783  } else goto handle_unusual;
3784  continue;
3785  // bool boxes_with_null_area_can_overlap = 3;
3786  case 3:
3787  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3788  boxes_with_null_area_can_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3789  CHK_(ptr);
3790  } else goto handle_unusual;
3791  continue;
3792  default: {
3793  handle_unusual:
3794  if ((tag & 7) == 4 || tag == 0) {
3795  ctx->SetLastTag(tag);
3796  goto success;
3797  }
3798  ptr = UnknownFieldParse(tag,
3799  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3800  ptr, ctx);
3801  CHK_(ptr != nullptr);
3802  continue;
3803  }
3804  } // switch
3805  } // while
3806 success:
3807  return ptr;
3808 failure:
3809  ptr = nullptr;
3810  goto success;
3811 #undef CHK_
3812 }
3813 
3814 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlap2DConstraintProto::_InternalSerialize(
3815  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3816  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlap2DConstraintProto)
3817  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3818  (void) cached_has_bits;
3819 
3820  // repeated int32 x_intervals = 1;
3821  {
3822  int byte_size = _x_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3823  if (byte_size > 0) {
3824  target = stream->WriteInt32Packed(
3825  1, _internal_x_intervals(), byte_size, target);
3826  }
3827  }
3828 
3829  // repeated int32 y_intervals = 2;
3830  {
3831  int byte_size = _y_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3832  if (byte_size > 0) {
3833  target = stream->WriteInt32Packed(
3834  2, _internal_y_intervals(), byte_size, target);
3835  }
3836  }
3837 
3838  // bool boxes_with_null_area_can_overlap = 3;
3839  if (this->boxes_with_null_area_can_overlap() != 0) {
3840  target = stream->EnsureSpace(target);
3841  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_boxes_with_null_area_can_overlap(), target);
3842  }
3843 
3844  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3845  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3846  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3847  }
3848  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlap2DConstraintProto)
3849  return target;
3850 }
3851 
3852 size_t NoOverlap2DConstraintProto::ByteSizeLong() const {
3853 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlap2DConstraintProto)
3854  size_t total_size = 0;
3855 
3856  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3857  // Prevent compiler warnings about cached_has_bits being unused
3858  (void) cached_has_bits;
3859 
3860  // repeated int32 x_intervals = 1;
3861  {
3862  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3863  Int32Size(this->x_intervals_);
3864  if (data_size > 0) {
3865  total_size += 1 +
3866  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3867  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3868  }
3869  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3870  _x_intervals_cached_byte_size_.store(cached_size,
3871  std::memory_order_relaxed);
3872  total_size += data_size;
3873  }
3874 
3875  // repeated int32 y_intervals = 2;
3876  {
3877  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3878  Int32Size(this->y_intervals_);
3879  if (data_size > 0) {
3880  total_size += 1 +
3881  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3882  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3883  }
3884  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3885  _y_intervals_cached_byte_size_.store(cached_size,
3886  std::memory_order_relaxed);
3887  total_size += data_size;
3888  }
3889 
3890  // bool boxes_with_null_area_can_overlap = 3;
3891  if (this->boxes_with_null_area_can_overlap() != 0) {
3892  total_size += 1 + 1;
3893  }
3894 
3895  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3896  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3897  _internal_metadata_, total_size, &_cached_size_);
3898  }
3899  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3900  SetCachedSize(cached_size);
3901  return total_size;
3902 }
3903 
3904 void NoOverlap2DConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3905 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3906  GOOGLE_DCHECK_NE(&from, this);
3907  const NoOverlap2DConstraintProto* source =
3908  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlap2DConstraintProto>(
3909  &from);
3910  if (source == nullptr) {
3911  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlap2DConstraintProto)
3912  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3913  } else {
3914  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlap2DConstraintProto)
3915  MergeFrom(*source);
3916  }
3917 }
3918 
3919 void NoOverlap2DConstraintProto::MergeFrom(const NoOverlap2DConstraintProto& from) {
3920 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3921  GOOGLE_DCHECK_NE(&from, this);
3922  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3923  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3924  (void) cached_has_bits;
3925 
3926  x_intervals_.MergeFrom(from.x_intervals_);
3927  y_intervals_.MergeFrom(from.y_intervals_);
3928  if (from.boxes_with_null_area_can_overlap() != 0) {
3929  _internal_set_boxes_with_null_area_can_overlap(from._internal_boxes_with_null_area_can_overlap());
3930  }
3931 }
3932 
3933 void NoOverlap2DConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3934 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3935  if (&from == this) return;
3936  Clear();
3937  MergeFrom(from);
3938 }
3939 
3940 void NoOverlap2DConstraintProto::CopyFrom(const NoOverlap2DConstraintProto& from) {
3941 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3942  if (&from == this) return;
3943  Clear();
3944  MergeFrom(from);
3945 }
3946 
3947 bool NoOverlap2DConstraintProto::IsInitialized() const {
3948  return true;
3949 }
3950 
3951 void NoOverlap2DConstraintProto::InternalSwap(NoOverlap2DConstraintProto* other) {
3952  using std::swap;
3953  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3954  x_intervals_.InternalSwap(&other->x_intervals_);
3955  y_intervals_.InternalSwap(&other->y_intervals_);
3956  swap(boxes_with_null_area_can_overlap_, other->boxes_with_null_area_can_overlap_);
3957 }
3958 
3959 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlap2DConstraintProto::GetMetadata() const {
3960  return GetMetadataStatic();
3961 }
3962 
3963 
3964 // ===================================================================
3965 
3967  public:
3968 };
3969 
3970 CumulativeConstraintProto::CumulativeConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3971  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3972  intervals_(arena),
3973  demands_(arena) {
3974  SharedCtor();
3975  RegisterArenaDtor(arena);
3976  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CumulativeConstraintProto)
3977 }
3978 CumulativeConstraintProto::CumulativeConstraintProto(const CumulativeConstraintProto& from)
3979  : ::PROTOBUF_NAMESPACE_ID::Message(),
3980  intervals_(from.intervals_),
3981  demands_(from.demands_) {
3982  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3983  capacity_ = from.capacity_;
3984  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CumulativeConstraintProto)
3985 }
3986 
3987 void CumulativeConstraintProto::SharedCtor() {
3988  capacity_ = 0;
3989 }
3990 
3991 CumulativeConstraintProto::~CumulativeConstraintProto() {
3992  // @@protoc_insertion_point(destructor:operations_research.sat.CumulativeConstraintProto)
3993  SharedDtor();
3994  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3995 }
3996 
3997 void CumulativeConstraintProto::SharedDtor() {
3998  GOOGLE_DCHECK(GetArena() == nullptr);
3999 }
4000 
4001 void CumulativeConstraintProto::ArenaDtor(void* object) {
4002  CumulativeConstraintProto* _this = reinterpret_cast< CumulativeConstraintProto* >(object);
4003  (void)_this;
4004 }
4005 void CumulativeConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4006 }
4007 void CumulativeConstraintProto::SetCachedSize(int size) const {
4008  _cached_size_.Set(size);
4009 }
4010 const CumulativeConstraintProto& CumulativeConstraintProto::default_instance() {
4011  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4012  return *internal_default_instance();
4013 }
4014 
4015 
4016 void CumulativeConstraintProto::Clear() {
4017 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CumulativeConstraintProto)
4018  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4019  // Prevent compiler warnings about cached_has_bits being unused
4020  (void) cached_has_bits;
4021 
4022  intervals_.Clear();
4023  demands_.Clear();
4024  capacity_ = 0;
4025  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4026 }
4027 
4028 const char* CumulativeConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4029 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4030  while (!ctx->Done(&ptr)) {
4032  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4033  CHK_(ptr);
4034  switch (tag >> 3) {
4035  // int32 capacity = 1;
4036  case 1:
4037  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4038  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4039  CHK_(ptr);
4040  } else goto handle_unusual;
4041  continue;
4042  // repeated int32 intervals = 2;
4043  case 2:
4044  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4045  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
4046  CHK_(ptr);
4047  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4048  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4049  CHK_(ptr);
4050  } else goto handle_unusual;
4051  continue;
4052  // repeated int32 demands = 3;
4053  case 3:
4054  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4055  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4056  CHK_(ptr);
4057  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4058  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4059  CHK_(ptr);
4060  } else goto handle_unusual;
4061  continue;
4062  default: {
4063  handle_unusual:
4064  if ((tag & 7) == 4 || tag == 0) {
4065  ctx->SetLastTag(tag);
4066  goto success;
4067  }
4068  ptr = UnknownFieldParse(tag,
4069  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4070  ptr, ctx);
4071  CHK_(ptr != nullptr);
4072  continue;
4073  }
4074  } // switch
4075  } // while
4076 success:
4077  return ptr;
4078 failure:
4079  ptr = nullptr;
4080  goto success;
4081 #undef CHK_
4082 }
4083 
4084 ::PROTOBUF_NAMESPACE_ID::uint8* CumulativeConstraintProto::_InternalSerialize(
4085  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4086  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CumulativeConstraintProto)
4087  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4088  (void) cached_has_bits;
4089 
4090  // int32 capacity = 1;
4091  if (this->capacity() != 0) {
4092  target = stream->EnsureSpace(target);
4093  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_capacity(), target);
4094  }
4095 
4096  // repeated int32 intervals = 2;
4097  {
4098  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
4099  if (byte_size > 0) {
4100  target = stream->WriteInt32Packed(
4101  2, _internal_intervals(), byte_size, target);
4102  }
4103  }
4104 
4105  // repeated int32 demands = 3;
4106  {
4107  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4108  if (byte_size > 0) {
4109  target = stream->WriteInt32Packed(
4110  3, _internal_demands(), byte_size, target);
4111  }
4112  }
4113 
4114  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4115  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4116  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4117  }
4118  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CumulativeConstraintProto)
4119  return target;
4120 }
4121 
4122 size_t CumulativeConstraintProto::ByteSizeLong() const {
4123 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CumulativeConstraintProto)
4124  size_t total_size = 0;
4125 
4126  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4127  // Prevent compiler warnings about cached_has_bits being unused
4128  (void) cached_has_bits;
4129 
4130  // repeated int32 intervals = 2;
4131  {
4132  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4133  Int32Size(this->intervals_);
4134  if (data_size > 0) {
4135  total_size += 1 +
4136  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4137  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4138  }
4139  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4140  _intervals_cached_byte_size_.store(cached_size,
4141  std::memory_order_relaxed);
4142  total_size += data_size;
4143  }
4144 
4145  // repeated int32 demands = 3;
4146  {
4147  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4148  Int32Size(this->demands_);
4149  if (data_size > 0) {
4150  total_size += 1 +
4151  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4152  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4153  }
4154  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4155  _demands_cached_byte_size_.store(cached_size,
4156  std::memory_order_relaxed);
4157  total_size += data_size;
4158  }
4159 
4160  // int32 capacity = 1;
4161  if (this->capacity() != 0) {
4162  total_size += 1 +
4163  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4164  this->_internal_capacity());
4165  }
4166 
4167  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4168  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4169  _internal_metadata_, total_size, &_cached_size_);
4170  }
4171  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4172  SetCachedSize(cached_size);
4173  return total_size;
4174 }
4175 
4176 void CumulativeConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4177 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4178  GOOGLE_DCHECK_NE(&from, this);
4179  const CumulativeConstraintProto* source =
4180  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CumulativeConstraintProto>(
4181  &from);
4182  if (source == nullptr) {
4183  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CumulativeConstraintProto)
4184  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4185  } else {
4186  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CumulativeConstraintProto)
4187  MergeFrom(*source);
4188  }
4189 }
4190 
4191 void CumulativeConstraintProto::MergeFrom(const CumulativeConstraintProto& from) {
4192 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4193  GOOGLE_DCHECK_NE(&from, this);
4194  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4195  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4196  (void) cached_has_bits;
4197 
4198  intervals_.MergeFrom(from.intervals_);
4199  demands_.MergeFrom(from.demands_);
4200  if (from.capacity() != 0) {
4201  _internal_set_capacity(from._internal_capacity());
4202  }
4203 }
4204 
4205 void CumulativeConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4206 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4207  if (&from == this) return;
4208  Clear();
4209  MergeFrom(from);
4210 }
4211 
4212 void CumulativeConstraintProto::CopyFrom(const CumulativeConstraintProto& from) {
4213 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4214  if (&from == this) return;
4215  Clear();
4216  MergeFrom(from);
4217 }
4218 
4219 bool CumulativeConstraintProto::IsInitialized() const {
4220  return true;
4221 }
4222 
4223 void CumulativeConstraintProto::InternalSwap(CumulativeConstraintProto* other) {
4224  using std::swap;
4225  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4226  intervals_.InternalSwap(&other->intervals_);
4227  demands_.InternalSwap(&other->demands_);
4228  swap(capacity_, other->capacity_);
4229 }
4230 
4231 ::PROTOBUF_NAMESPACE_ID::Metadata CumulativeConstraintProto::GetMetadata() const {
4232  return GetMetadataStatic();
4233 }
4234 
4235 
4236 // ===================================================================
4237 
4239  public:
4240 };
4241 
4242 ReservoirConstraintProto::ReservoirConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4243  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4244  times_(arena),
4245  demands_(arena),
4246  actives_(arena) {
4247  SharedCtor();
4248  RegisterArenaDtor(arena);
4249  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ReservoirConstraintProto)
4250 }
4251 ReservoirConstraintProto::ReservoirConstraintProto(const ReservoirConstraintProto& from)
4252  : ::PROTOBUF_NAMESPACE_ID::Message(),
4253  times_(from.times_),
4254  demands_(from.demands_),
4255  actives_(from.actives_) {
4256  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4257  ::memcpy(&min_level_, &from.min_level_,
4258  static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4259  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4260  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ReservoirConstraintProto)
4261 }
4262 
4263 void ReservoirConstraintProto::SharedCtor() {
4264  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
4265  reinterpret_cast<char*>(&min_level_) - reinterpret_cast<char*>(this)),
4266  0, static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4267  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4268 }
4269 
4270 ReservoirConstraintProto::~ReservoirConstraintProto() {
4271  // @@protoc_insertion_point(destructor:operations_research.sat.ReservoirConstraintProto)
4272  SharedDtor();
4273  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4274 }
4275 
4276 void ReservoirConstraintProto::SharedDtor() {
4277  GOOGLE_DCHECK(GetArena() == nullptr);
4278 }
4279 
4280 void ReservoirConstraintProto::ArenaDtor(void* object) {
4281  ReservoirConstraintProto* _this = reinterpret_cast< ReservoirConstraintProto* >(object);
4282  (void)_this;
4283 }
4284 void ReservoirConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4285 }
4286 void ReservoirConstraintProto::SetCachedSize(int size) const {
4287  _cached_size_.Set(size);
4288 }
4289 const ReservoirConstraintProto& ReservoirConstraintProto::default_instance() {
4290  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4291  return *internal_default_instance();
4292 }
4293 
4294 
4295 void ReservoirConstraintProto::Clear() {
4296 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ReservoirConstraintProto)
4297  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4298  // Prevent compiler warnings about cached_has_bits being unused
4299  (void) cached_has_bits;
4300 
4301  times_.Clear();
4302  demands_.Clear();
4303  actives_.Clear();
4304  ::memset(&min_level_, 0, static_cast<size_t>(
4305  reinterpret_cast<char*>(&max_level_) -
4306  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4307  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4308 }
4309 
4310 const char* ReservoirConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4311 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4312  while (!ctx->Done(&ptr)) {
4314  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4315  CHK_(ptr);
4316  switch (tag >> 3) {
4317  // int64 min_level = 1;
4318  case 1:
4319  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4320  min_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4321  CHK_(ptr);
4322  } else goto handle_unusual;
4323  continue;
4324  // int64 max_level = 2;
4325  case 2:
4326  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
4327  max_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4328  CHK_(ptr);
4329  } else goto handle_unusual;
4330  continue;
4331  // repeated int32 times = 3;
4332  case 3:
4333  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4334  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_times(), ptr, ctx);
4335  CHK_(ptr);
4336  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4337  _internal_add_times(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4338  CHK_(ptr);
4339  } else goto handle_unusual;
4340  continue;
4341  // repeated int64 demands = 4;
4342  case 4:
4343  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4344  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_demands(), ptr, ctx);
4345  CHK_(ptr);
4346  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4347  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4348  CHK_(ptr);
4349  } else goto handle_unusual;
4350  continue;
4351  // repeated int32 actives = 5;
4352  case 5:
4353  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4354  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_actives(), ptr, ctx);
4355  CHK_(ptr);
4356  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4357  _internal_add_actives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4358  CHK_(ptr);
4359  } else goto handle_unusual;
4360  continue;
4361  default: {
4362  handle_unusual:
4363  if ((tag & 7) == 4 || tag == 0) {
4364  ctx->SetLastTag(tag);
4365  goto success;
4366  }
4367  ptr = UnknownFieldParse(tag,
4368  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4369  ptr, ctx);
4370  CHK_(ptr != nullptr);
4371  continue;
4372  }
4373  } // switch
4374  } // while
4375 success:
4376  return ptr;
4377 failure:
4378  ptr = nullptr;
4379  goto success;
4380 #undef CHK_
4381 }
4382 
4383 ::PROTOBUF_NAMESPACE_ID::uint8* ReservoirConstraintProto::_InternalSerialize(
4384  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4385  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ReservoirConstraintProto)
4386  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4387  (void) cached_has_bits;
4388 
4389  // int64 min_level = 1;
4390  if (this->min_level() != 0) {
4391  target = stream->EnsureSpace(target);
4392  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_min_level(), target);
4393  }
4394 
4395  // int64 max_level = 2;
4396  if (this->max_level() != 0) {
4397  target = stream->EnsureSpace(target);
4398  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_max_level(), target);
4399  }
4400 
4401  // repeated int32 times = 3;
4402  {
4403  int byte_size = _times_cached_byte_size_.load(std::memory_order_relaxed);
4404  if (byte_size > 0) {
4405  target = stream->WriteInt32Packed(
4406  3, _internal_times(), byte_size, target);
4407  }
4408  }
4409 
4410  // repeated int64 demands = 4;
4411  {
4412  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4413  if (byte_size > 0) {
4414  target = stream->WriteInt64Packed(
4415  4, _internal_demands(), byte_size, target);
4416  }
4417  }
4418 
4419  // repeated int32 actives = 5;
4420  {
4421  int byte_size = _actives_cached_byte_size_.load(std::memory_order_relaxed);
4422  if (byte_size > 0) {
4423  target = stream->WriteInt32Packed(
4424  5, _internal_actives(), byte_size, target);
4425  }
4426  }
4427 
4428  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4429  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4430  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4431  }
4432  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ReservoirConstraintProto)
4433  return target;
4434 }
4435 
4436 size_t ReservoirConstraintProto::ByteSizeLong() const {
4437 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ReservoirConstraintProto)
4438  size_t total_size = 0;
4439 
4440  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4441  // Prevent compiler warnings about cached_has_bits being unused
4442  (void) cached_has_bits;
4443 
4444  // repeated int32 times = 3;
4445  {
4446  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4447  Int32Size(this->times_);
4448  if (data_size > 0) {
4449  total_size += 1 +
4450  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4451  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4452  }
4453  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4454  _times_cached_byte_size_.store(cached_size,
4455  std::memory_order_relaxed);
4456  total_size += data_size;
4457  }
4458 
4459  // repeated int64 demands = 4;
4460  {
4461  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4462  Int64Size(this->demands_);
4463  if (data_size > 0) {
4464  total_size += 1 +
4465  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4466  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4467  }
4468  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4469  _demands_cached_byte_size_.store(cached_size,
4470  std::memory_order_relaxed);
4471  total_size += data_size;
4472  }
4473 
4474  // repeated int32 actives = 5;
4475  {
4476  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4477  Int32Size(this->actives_);
4478  if (data_size > 0) {
4479  total_size += 1 +
4480  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4481  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4482  }
4483  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4484  _actives_cached_byte_size_.store(cached_size,
4485  std::memory_order_relaxed);
4486  total_size += data_size;
4487  }
4488 
4489  // int64 min_level = 1;
4490  if (this->min_level() != 0) {
4491  total_size += 1 +
4492  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4493  this->_internal_min_level());
4494  }
4495 
4496  // int64 max_level = 2;
4497  if (this->max_level() != 0) {
4498  total_size += 1 +
4499  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4500  this->_internal_max_level());
4501  }
4502 
4503  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4504  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4505  _internal_metadata_, total_size, &_cached_size_);
4506  }
4507  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4508  SetCachedSize(cached_size);
4509  return total_size;
4510 }
4511 
4512 void ReservoirConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4513 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4514  GOOGLE_DCHECK_NE(&from, this);
4515  const ReservoirConstraintProto* source =
4516  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ReservoirConstraintProto>(
4517  &from);
4518  if (source == nullptr) {
4519  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ReservoirConstraintProto)
4520  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4521  } else {
4522  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ReservoirConstraintProto)
4523  MergeFrom(*source);
4524  }
4525 }
4526 
4527 void ReservoirConstraintProto::MergeFrom(const ReservoirConstraintProto& from) {
4528 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4529  GOOGLE_DCHECK_NE(&from, this);
4530  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4531  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4532  (void) cached_has_bits;
4533 
4534  times_.MergeFrom(from.times_);
4535  demands_.MergeFrom(from.demands_);
4536  actives_.MergeFrom(from.actives_);
4537  if (from.min_level() != 0) {
4538  _internal_set_min_level(from._internal_min_level());
4539  }
4540  if (from.max_level() != 0) {
4541  _internal_set_max_level(from._internal_max_level());
4542  }
4543 }
4544 
4545 void ReservoirConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4546 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4547  if (&from == this) return;
4548  Clear();
4549  MergeFrom(from);
4550 }
4551 
4552 void ReservoirConstraintProto::CopyFrom(const ReservoirConstraintProto& from) {
4553 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4554  if (&from == this) return;
4555  Clear();
4556  MergeFrom(from);
4557 }
4558 
4559 bool ReservoirConstraintProto::IsInitialized() const {
4560  return true;
4561 }
4562 
4563 void ReservoirConstraintProto::InternalSwap(ReservoirConstraintProto* other) {
4564  using std::swap;
4565  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4566  times_.InternalSwap(&other->times_);
4567  demands_.InternalSwap(&other->demands_);
4568  actives_.InternalSwap(&other->actives_);
4569  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
4570  PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, max_level_)
4571  + sizeof(ReservoirConstraintProto::max_level_)
4572  - PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, min_level_)>(
4573  reinterpret_cast<char*>(&min_level_),
4574  reinterpret_cast<char*>(&other->min_level_));
4575 }
4576 
4577 ::PROTOBUF_NAMESPACE_ID::Metadata ReservoirConstraintProto::GetMetadata() const {
4578  return GetMetadataStatic();
4579 }
4580 
4581 
4582 // ===================================================================
4583 
4585  public:
4586 };
4587 
4588 CircuitConstraintProto::CircuitConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4589  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4590  tails_(arena),
4591  heads_(arena),
4592  literals_(arena) {
4593  SharedCtor();
4594  RegisterArenaDtor(arena);
4595  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CircuitConstraintProto)
4596 }
4597 CircuitConstraintProto::CircuitConstraintProto(const CircuitConstraintProto& from)
4598  : ::PROTOBUF_NAMESPACE_ID::Message(),
4599  tails_(from.tails_),
4600  heads_(from.heads_),
4601  literals_(from.literals_) {
4602  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4603  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CircuitConstraintProto)
4604 }
4605 
4606 void CircuitConstraintProto::SharedCtor() {
4607 }
4608 
4609 CircuitConstraintProto::~CircuitConstraintProto() {
4610  // @@protoc_insertion_point(destructor:operations_research.sat.CircuitConstraintProto)
4611  SharedDtor();
4612  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4613 }
4614 
4615 void CircuitConstraintProto::SharedDtor() {
4616  GOOGLE_DCHECK(GetArena() == nullptr);
4617 }
4618 
4619 void CircuitConstraintProto::ArenaDtor(void* object) {
4620  CircuitConstraintProto* _this = reinterpret_cast< CircuitConstraintProto* >(object);
4621  (void)_this;
4622 }
4623 void CircuitConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4624 }
4625 void CircuitConstraintProto::SetCachedSize(int size) const {
4626  _cached_size_.Set(size);
4627 }
4628 const CircuitConstraintProto& CircuitConstraintProto::default_instance() {
4629  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4630  return *internal_default_instance();
4631 }
4632 
4633 
4634 void CircuitConstraintProto::Clear() {
4635 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CircuitConstraintProto)
4636  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4637  // Prevent compiler warnings about cached_has_bits being unused
4638  (void) cached_has_bits;
4639 
4640  tails_.Clear();
4641  heads_.Clear();
4642  literals_.Clear();
4643  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4644 }
4645 
4646 const char* CircuitConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4647 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4648  while (!ctx->Done(&ptr)) {
4650  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4651  CHK_(ptr);
4652  switch (tag >> 3) {
4653  // repeated int32 tails = 3;
4654  case 3:
4655  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4656  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4657  CHK_(ptr);
4658  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4659  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4660  CHK_(ptr);
4661  } else goto handle_unusual;
4662  continue;
4663  // repeated int32 heads = 4;
4664  case 4:
4665  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4666  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4667  CHK_(ptr);
4668  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4669  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4670  CHK_(ptr);
4671  } else goto handle_unusual;
4672  continue;
4673  // repeated int32 literals = 5;
4674  case 5:
4675  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4676  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4677  CHK_(ptr);
4678  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4679  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4680  CHK_(ptr);
4681  } else goto handle_unusual;
4682  continue;
4683  default: {
4684  handle_unusual:
4685  if ((tag & 7) == 4 || tag == 0) {
4686  ctx->SetLastTag(tag);
4687  goto success;
4688  }
4689  ptr = UnknownFieldParse(tag,
4690  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4691  ptr, ctx);
4692  CHK_(ptr != nullptr);
4693  continue;
4694  }
4695  } // switch
4696  } // while
4697 success:
4698  return ptr;
4699 failure:
4700  ptr = nullptr;
4701  goto success;
4702 #undef CHK_
4703 }
4704 
4705 ::PROTOBUF_NAMESPACE_ID::uint8* CircuitConstraintProto::_InternalSerialize(
4706  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4707  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CircuitConstraintProto)
4708  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4709  (void) cached_has_bits;
4710 
4711  // repeated int32 tails = 3;
4712  {
4713  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4714  if (byte_size > 0) {
4715  target = stream->WriteInt32Packed(
4716  3, _internal_tails(), byte_size, target);
4717  }
4718  }
4719 
4720  // repeated int32 heads = 4;
4721  {
4722  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4723  if (byte_size > 0) {
4724  target = stream->WriteInt32Packed(
4725  4, _internal_heads(), byte_size, target);
4726  }
4727  }
4728 
4729  // repeated int32 literals = 5;
4730  {
4731  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4732  if (byte_size > 0) {
4733  target = stream->WriteInt32Packed(
4734  5, _internal_literals(), byte_size, target);
4735  }
4736  }
4737 
4738  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4739  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4740  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4741  }
4742  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CircuitConstraintProto)
4743  return target;
4744 }
4745 
4746 size_t CircuitConstraintProto::ByteSizeLong() const {
4747 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CircuitConstraintProto)
4748  size_t total_size = 0;
4749 
4750  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4751  // Prevent compiler warnings about cached_has_bits being unused
4752  (void) cached_has_bits;
4753 
4754  // repeated int32 tails = 3;
4755  {
4756  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4757  Int32Size(this->tails_);
4758  if (data_size > 0) {
4759  total_size += 1 +
4760  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4761  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4762  }
4763  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4764  _tails_cached_byte_size_.store(cached_size,
4765  std::memory_order_relaxed);
4766  total_size += data_size;
4767  }
4768 
4769  // repeated int32 heads = 4;
4770  {
4771  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4772  Int32Size(this->heads_);
4773  if (data_size > 0) {
4774  total_size += 1 +
4775  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4776  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4777  }
4778  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4779  _heads_cached_byte_size_.store(cached_size,
4780  std::memory_order_relaxed);
4781  total_size += data_size;
4782  }
4783 
4784  // repeated int32 literals = 5;
4785  {
4786  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4787  Int32Size(this->literals_);
4788  if (data_size > 0) {
4789  total_size += 1 +
4790  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4791  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4792  }
4793  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4794  _literals_cached_byte_size_.store(cached_size,
4795  std::memory_order_relaxed);
4796  total_size += data_size;
4797  }
4798 
4799  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4800  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4801  _internal_metadata_, total_size, &_cached_size_);
4802  }
4803  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4804  SetCachedSize(cached_size);
4805  return total_size;
4806 }
4807 
4808 void CircuitConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4809 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CircuitConstraintProto)
4810  GOOGLE_DCHECK_NE(&from, this);
4811  const CircuitConstraintProto* source =
4812  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CircuitConstraintProto>(
4813  &from);
4814  if (source == nullptr) {
4815  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CircuitConstraintProto)
4816  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4817  } else {
4818  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CircuitConstraintProto)
4819  MergeFrom(*source);
4820  }
4821 }
4822 
4823 void CircuitConstraintProto::MergeFrom(const CircuitConstraintProto& from) {
4824 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CircuitConstraintProto)
4825  GOOGLE_DCHECK_NE(&from, this);
4826  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4827  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4828  (void) cached_has_bits;
4829 
4830  tails_.MergeFrom(from.tails_);
4831  heads_.MergeFrom(from.heads_);
4832  literals_.MergeFrom(from.literals_);
4833 }
4834 
4835 void CircuitConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4836 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CircuitConstraintProto)
4837  if (&from == this) return;
4838  Clear();
4839  MergeFrom(from);
4840 }
4841 
4842 void CircuitConstraintProto::CopyFrom(const CircuitConstraintProto& from) {
4843 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CircuitConstraintProto)
4844  if (&from == this) return;
4845  Clear();
4846  MergeFrom(from);
4847 }
4848 
4849 bool CircuitConstraintProto::IsInitialized() const {
4850  return true;
4851 }
4852 
4853 void CircuitConstraintProto::InternalSwap(CircuitConstraintProto* other) {
4854  using std::swap;
4855  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4856  tails_.InternalSwap(&other->tails_);
4857  heads_.InternalSwap(&other->heads_);
4858  literals_.InternalSwap(&other->literals_);
4859 }
4860 
4861 ::PROTOBUF_NAMESPACE_ID::Metadata CircuitConstraintProto::GetMetadata() const {
4862  return GetMetadataStatic();
4863 }
4864 
4865 
4866 // ===================================================================
4867 
4869  public:
4870 };
4871 
4872 RoutesConstraintProto::RoutesConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4873  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4874  tails_(arena),
4875  heads_(arena),
4876  literals_(arena),
4877  demands_(arena) {
4878  SharedCtor();
4879  RegisterArenaDtor(arena);
4880  // @@protoc_insertion_point(arena_constructor:operations_research.sat.RoutesConstraintProto)
4881 }
4882 RoutesConstraintProto::RoutesConstraintProto(const RoutesConstraintProto& from)
4883  : ::PROTOBUF_NAMESPACE_ID::Message(),
4884  tails_(from.tails_),
4885  heads_(from.heads_),
4886  literals_(from.literals_),
4887  demands_(from.demands_) {
4888  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4889  capacity_ = from.capacity_;
4890  // @@protoc_insertion_point(copy_constructor:operations_research.sat.RoutesConstraintProto)
4891 }
4892 
4893 void RoutesConstraintProto::SharedCtor() {
4894  capacity_ = PROTOBUF_LONGLONG(0);
4895 }
4896 
4897 RoutesConstraintProto::~RoutesConstraintProto() {
4898  // @@protoc_insertion_point(destructor:operations_research.sat.RoutesConstraintProto)
4899  SharedDtor();
4900  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4901 }
4902 
4903 void RoutesConstraintProto::SharedDtor() {
4904  GOOGLE_DCHECK(GetArena() == nullptr);
4905 }
4906 
4907 void RoutesConstraintProto::ArenaDtor(void* object) {
4908  RoutesConstraintProto* _this = reinterpret_cast< RoutesConstraintProto* >(object);
4909  (void)_this;
4910 }
4911 void RoutesConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4912 }
4913 void RoutesConstraintProto::SetCachedSize(int size) const {
4914  _cached_size_.Set(size);
4915 }
4916 const RoutesConstraintProto& RoutesConstraintProto::default_instance() {
4917  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4918  return *internal_default_instance();
4919 }
4920 
4921 
4922 void RoutesConstraintProto::Clear() {
4923 // @@protoc_insertion_point(message_clear_start:operations_research.sat.RoutesConstraintProto)
4924  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4925  // Prevent compiler warnings about cached_has_bits being unused
4926  (void) cached_has_bits;
4927 
4928  tails_.Clear();
4929  heads_.Clear();
4930  literals_.Clear();
4931  demands_.Clear();
4932  capacity_ = PROTOBUF_LONGLONG(0);
4933  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4934 }
4935 
4936 const char* RoutesConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4937 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4938  while (!ctx->Done(&ptr)) {
4940  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4941  CHK_(ptr);
4942  switch (tag >> 3) {
4943  // repeated int32 tails = 1;
4944  case 1:
4945  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
4946  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4947  CHK_(ptr);
4948  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
4949  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4950  CHK_(ptr);
4951  } else goto handle_unusual;
4952  continue;
4953  // repeated int32 heads = 2;
4954  case 2:
4955  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4956  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4957  CHK_(ptr);
4958  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4959  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4960  CHK_(ptr);
4961  } else goto handle_unusual;
4962  continue;
4963  // repeated int32 literals = 3;
4964  case 3:
4965  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4966  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4967  CHK_(ptr);
4968  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4969  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4970  CHK_(ptr);
4971  } else goto handle_unusual;
4972  continue;
4973  // repeated int32 demands = 4;
4974  case 4:
4975  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4976  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4977  CHK_(ptr);
4978  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4979  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4980  CHK_(ptr);
4981  } else goto handle_unusual;
4982  continue;
4983  // int64 capacity = 5;
4984  case 5:
4985  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
4986  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4987  CHK_(ptr);
4988  } else goto handle_unusual;
4989  continue;
4990  default: {
4991  handle_unusual:
4992  if ((tag & 7) == 4 || tag == 0) {
4993  ctx->SetLastTag(tag);
4994  goto success;
4995  }
4996  ptr = UnknownFieldParse(tag,
4997  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4998  ptr, ctx);
4999  CHK_(ptr != nullptr);
5000  continue;
5001  }
5002  } // switch
5003  } // while
5004 success:
5005  return ptr;
5006 failure:
5007  ptr = nullptr;
5008  goto success;
5009 #undef CHK_
5010 }
5011 
5012 ::PROTOBUF_NAMESPACE_ID::uint8* RoutesConstraintProto::_InternalSerialize(
5013  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5014  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.RoutesConstraintProto)
5015  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5016  (void) cached_has_bits;
5017 
5018  // repeated int32 tails = 1;
5019  {
5020  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
5021  if (byte_size > 0) {
5022  target = stream->WriteInt32Packed(
5023  1, _internal_tails(), byte_size, target);
5024  }
5025  }
5026 
5027  // repeated int32 heads = 2;
5028  {
5029  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
5030  if (byte_size > 0) {
5031  target = stream->WriteInt32Packed(
5032  2, _internal_heads(), byte_size, target);
5033  }
5034  }
5035 
5036  // repeated int32 literals = 3;
5037  {
5038  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
5039  if (byte_size > 0) {
5040  target = stream->WriteInt32Packed(
5041  3, _internal_literals(), byte_size, target);
5042  }
5043  }
5044 
5045  // repeated int32 demands = 4;
5046  {
5047  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
5048  if (byte_size > 0) {
5049  target = stream->WriteInt32Packed(
5050  4, _internal_demands(), byte_size, target);
5051  }
5052  }
5053 
5054  // int64 capacity = 5;
5055  if (this->capacity() != 0) {
5056  target = stream->EnsureSpace(target);
5057  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_capacity(), target);
5058  }
5059 
5060  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5061  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5062  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5063  }
5064  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.RoutesConstraintProto)
5065  return target;
5066 }
5067 
5068 size_t RoutesConstraintProto::ByteSizeLong() const {
5069 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.RoutesConstraintProto)
5070  size_t total_size = 0;
5071 
5072  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5073  // Prevent compiler warnings about cached_has_bits being unused
5074  (void) cached_has_bits;
5075 
5076  // repeated int32 tails = 1;
5077  {
5078  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5079  Int32Size(this->tails_);
5080  if (data_size > 0) {
5081  total_size += 1 +
5082  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5083  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5084  }
5085  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5086  _tails_cached_byte_size_.store(cached_size,
5087  std::memory_order_relaxed);
5088  total_size += data_size;
5089  }
5090 
5091  // repeated int32 heads = 2;
5092  {
5093  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5094  Int32Size(this->heads_);
5095  if (data_size > 0) {
5096  total_size += 1 +
5097  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5098  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5099  }
5100  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5101  _heads_cached_byte_size_.store(cached_size,
5102  std::memory_order_relaxed);
5103  total_size += data_size;
5104  }
5105 
5106  // repeated int32 literals = 3;
5107  {
5108  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5109  Int32Size(this->literals_);
5110  if (data_size > 0) {
5111  total_size += 1 +
5112  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5113  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5114  }
5115  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5116  _literals_cached_byte_size_.store(cached_size,
5117  std::memory_order_relaxed);
5118  total_size += data_size;
5119  }
5120 
5121  // repeated int32 demands = 4;
5122  {
5123  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5124  Int32Size(this->demands_);
5125  if (data_size > 0) {
5126  total_size += 1 +
5127  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5128  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5129  }
5130  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5131  _demands_cached_byte_size_.store(cached_size,
5132  std::memory_order_relaxed);
5133  total_size += data_size;
5134  }
5135 
5136  // int64 capacity = 5;
5137  if (this->capacity() != 0) {
5138  total_size += 1 +
5139  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
5140  this->_internal_capacity());
5141  }
5142 
5143  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5144  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5145  _internal_metadata_, total_size, &_cached_size_);
5146  }
5147  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5148  SetCachedSize(cached_size);
5149  return total_size;
5150 }
5151 
5152 void RoutesConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5153 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.RoutesConstraintProto)
5154  GOOGLE_DCHECK_NE(&from, this);
5155  const RoutesConstraintProto* source =
5156  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutesConstraintProto>(
5157  &from);
5158  if (source == nullptr) {
5159  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.RoutesConstraintProto)
5160  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5161  } else {
5162  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.RoutesConstraintProto)
5163  MergeFrom(*source);
5164  }
5165 }
5166 
5167 void RoutesConstraintProto::MergeFrom(const RoutesConstraintProto& from) {
5168 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.RoutesConstraintProto)
5169  GOOGLE_DCHECK_NE(&from, this);
5170  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5171  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5172  (void) cached_has_bits;
5173 
5174  tails_.MergeFrom(from.tails_);
5175  heads_.MergeFrom(from.heads_);
5176  literals_.MergeFrom(from.literals_);
5177  demands_.MergeFrom(from.demands_);
5178  if (from.capacity() != 0) {
5179  _internal_set_capacity(from._internal_capacity());
5180  }
5181 }
5182 
5183 void RoutesConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5184 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.RoutesConstraintProto)
5185  if (&from == this) return;
5186  Clear();
5187  MergeFrom(from);
5188 }
5189 
5190 void RoutesConstraintProto::CopyFrom(const RoutesConstraintProto& from) {
5191 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.RoutesConstraintProto)
5192  if (&from == this) return;
5193  Clear();
5194  MergeFrom(from);
5195 }
5196 
5197 bool RoutesConstraintProto::IsInitialized() const {
5198  return true;
5199 }
5200 
5201 void RoutesConstraintProto::InternalSwap(RoutesConstraintProto* other) {
5202  using std::swap;
5203  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5204  tails_.InternalSwap(&other->tails_);
5205  heads_.InternalSwap(&other->heads_);
5206  literals_.InternalSwap(&other->literals_);
5207  demands_.InternalSwap(&other->demands_);
5208  swap(capacity_, other->capacity_);
5209 }
5210 
5211 ::PROTOBUF_NAMESPACE_ID::Metadata RoutesConstraintProto::GetMetadata() const {
5212  return GetMetadataStatic();
5213 }
5214 
5215 
5216 // ===================================================================
5217 
5219  public:
5220 };
5221 
5222 TableConstraintProto::TableConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5223  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5224  vars_(arena),
5225  values_(arena) {
5226  SharedCtor();
5227  RegisterArenaDtor(arena);
5228  // @@protoc_insertion_point(arena_constructor:operations_research.sat.TableConstraintProto)
5229 }
5230 TableConstraintProto::TableConstraintProto(const TableConstraintProto& from)
5231  : ::PROTOBUF_NAMESPACE_ID::Message(),
5232  vars_(from.vars_),
5233  values_(from.values_) {
5234  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5235  negated_ = from.negated_;
5236  // @@protoc_insertion_point(copy_constructor:operations_research.sat.TableConstraintProto)
5237 }
5238 
5239 void TableConstraintProto::SharedCtor() {
5240  negated_ = false;
5241 }
5242 
5243 TableConstraintProto::~TableConstraintProto() {
5244  // @@protoc_insertion_point(destructor:operations_research.sat.TableConstraintProto)
5245  SharedDtor();
5246  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5247 }
5248 
5249 void TableConstraintProto::SharedDtor() {
5250  GOOGLE_DCHECK(GetArena() == nullptr);
5251 }
5252 
5253 void TableConstraintProto::ArenaDtor(void* object) {
5254  TableConstraintProto* _this = reinterpret_cast< TableConstraintProto* >(object);
5255  (void)_this;
5256 }
5257 void TableConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5258 }
5259 void TableConstraintProto::SetCachedSize(int size) const {
5260  _cached_size_.Set(size);
5261 }
5262 const TableConstraintProto& TableConstraintProto::default_instance() {
5263  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5264  return *internal_default_instance();
5265 }
5266 
5267 
5268 void TableConstraintProto::Clear() {
5269 // @@protoc_insertion_point(message_clear_start:operations_research.sat.TableConstraintProto)
5270  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5271  // Prevent compiler warnings about cached_has_bits being unused
5272  (void) cached_has_bits;
5273 
5274  vars_.Clear();
5275  values_.Clear();
5276  negated_ = false;
5277  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5278 }
5279 
5280 const char* TableConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5281 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5282  while (!ctx->Done(&ptr)) {
5284  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5285  CHK_(ptr);
5286  switch (tag >> 3) {
5287  // repeated int32 vars = 1;
5288  case 1:
5289  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5290  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5291  CHK_(ptr);
5292  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5293  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5294  CHK_(ptr);
5295  } else goto handle_unusual;
5296  continue;
5297  // repeated int64 values = 2;
5298  case 2:
5299  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5300  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
5301  CHK_(ptr);
5302  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5303  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5304  CHK_(ptr);
5305  } else goto handle_unusual;
5306  continue;
5307  // bool negated = 3;
5308  case 3:
5309  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
5310  negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5311  CHK_(ptr);
5312  } else goto handle_unusual;
5313  continue;
5314  default: {
5315  handle_unusual:
5316  if ((tag & 7) == 4 || tag == 0) {
5317  ctx->SetLastTag(tag);
5318  goto success;
5319  }
5320  ptr = UnknownFieldParse(tag,
5321  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5322  ptr, ctx);
5323  CHK_(ptr != nullptr);
5324  continue;
5325  }
5326  } // switch
5327  } // while
5328 success:
5329  return ptr;
5330 failure:
5331  ptr = nullptr;
5332  goto success;
5333 #undef CHK_
5334 }
5335 
5336 ::PROTOBUF_NAMESPACE_ID::uint8* TableConstraintProto::_InternalSerialize(
5337  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5338  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.TableConstraintProto)
5339  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5340  (void) cached_has_bits;
5341 
5342  // repeated int32 vars = 1;
5343  {
5344  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5345  if (byte_size > 0) {
5346  target = stream->WriteInt32Packed(
5347  1, _internal_vars(), byte_size, target);
5348  }
5349  }
5350 
5351  // repeated int64 values = 2;
5352  {
5353  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
5354  if (byte_size > 0) {
5355  target = stream->WriteInt64Packed(
5356  2, _internal_values(), byte_size, target);
5357  }
5358  }
5359 
5360  // bool negated = 3;
5361  if (this->negated() != 0) {
5362  target = stream->EnsureSpace(target);
5363  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_negated(), target);
5364  }
5365 
5366  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5367  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5368  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5369  }
5370  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.TableConstraintProto)
5371  return target;
5372 }
5373 
5374 size_t TableConstraintProto::ByteSizeLong() const {
5375 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.TableConstraintProto)
5376  size_t total_size = 0;
5377 
5378  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5379  // Prevent compiler warnings about cached_has_bits being unused
5380  (void) cached_has_bits;
5381 
5382  // repeated int32 vars = 1;
5383  {
5384  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5385  Int32Size(this->vars_);
5386  if (data_size > 0) {
5387  total_size += 1 +
5388  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5389  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5390  }
5391  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5392  _vars_cached_byte_size_.store(cached_size,
5393  std::memory_order_relaxed);
5394  total_size += data_size;
5395  }
5396 
5397  // repeated int64 values = 2;
5398  {
5399  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5400  Int64Size(this->values_);
5401  if (data_size > 0) {
5402  total_size += 1 +
5403  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5404  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5405  }
5406  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5407  _values_cached_byte_size_.store(cached_size,
5408  std::memory_order_relaxed);
5409  total_size += data_size;
5410  }
5411 
5412  // bool negated = 3;
5413  if (this->negated() != 0) {
5414  total_size += 1 + 1;
5415  }
5416 
5417  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5418  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5419  _internal_metadata_, total_size, &_cached_size_);
5420  }
5421  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5422  SetCachedSize(cached_size);
5423  return total_size;
5424 }
5425 
5426 void TableConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5427 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.TableConstraintProto)
5428  GOOGLE_DCHECK_NE(&from, this);
5429  const TableConstraintProto* source =
5430  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TableConstraintProto>(
5431  &from);
5432  if (source == nullptr) {
5433  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.TableConstraintProto)
5434  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5435  } else {
5436  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.TableConstraintProto)
5437  MergeFrom(*source);
5438  }
5439 }
5440 
5441 void TableConstraintProto::MergeFrom(const TableConstraintProto& from) {
5442 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.TableConstraintProto)
5443  GOOGLE_DCHECK_NE(&from, this);
5444  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5445  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5446  (void) cached_has_bits;
5447 
5448  vars_.MergeFrom(from.vars_);
5449  values_.MergeFrom(from.values_);
5450  if (from.negated() != 0) {
5451  _internal_set_negated(from._internal_negated());
5452  }
5453 }
5454 
5455 void TableConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5456 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.TableConstraintProto)
5457  if (&from == this) return;
5458  Clear();
5459  MergeFrom(from);
5460 }
5461 
5462 void TableConstraintProto::CopyFrom(const TableConstraintProto& from) {
5463 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.TableConstraintProto)
5464  if (&from == this) return;
5465  Clear();
5466  MergeFrom(from);
5467 }
5468 
5469 bool TableConstraintProto::IsInitialized() const {
5470  return true;
5471 }
5472 
5473 void TableConstraintProto::InternalSwap(TableConstraintProto* other) {
5474  using std::swap;
5475  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5476  vars_.InternalSwap(&other->vars_);
5477  values_.InternalSwap(&other->values_);
5478  swap(negated_, other->negated_);
5479 }
5480 
5481 ::PROTOBUF_NAMESPACE_ID::Metadata TableConstraintProto::GetMetadata() const {
5482  return GetMetadataStatic();
5483 }
5484 
5485 
5486 // ===================================================================
5487 
5489  public:
5490 };
5491 
5492 InverseConstraintProto::InverseConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5493  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5494  f_direct_(arena),
5495  f_inverse_(arena) {
5496  SharedCtor();
5497  RegisterArenaDtor(arena);
5498  // @@protoc_insertion_point(arena_constructor:operations_research.sat.InverseConstraintProto)
5499 }
5500 InverseConstraintProto::InverseConstraintProto(const InverseConstraintProto& from)
5501  : ::PROTOBUF_NAMESPACE_ID::Message(),
5502  f_direct_(from.f_direct_),
5503  f_inverse_(from.f_inverse_) {
5504  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5505  // @@protoc_insertion_point(copy_constructor:operations_research.sat.InverseConstraintProto)
5506 }
5507 
5508 void InverseConstraintProto::SharedCtor() {
5509 }
5510 
5511 InverseConstraintProto::~InverseConstraintProto() {
5512  // @@protoc_insertion_point(destructor:operations_research.sat.InverseConstraintProto)
5513  SharedDtor();
5514  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5515 }
5516 
5517 void InverseConstraintProto::SharedDtor() {
5518  GOOGLE_DCHECK(GetArena() == nullptr);
5519 }
5520 
5521 void InverseConstraintProto::ArenaDtor(void* object) {
5522  InverseConstraintProto* _this = reinterpret_cast< InverseConstraintProto* >(object);
5523  (void)_this;
5524 }
5525 void InverseConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5526 }
5527 void InverseConstraintProto::SetCachedSize(int size) const {
5528  _cached_size_.Set(size);
5529 }
5530 const InverseConstraintProto& InverseConstraintProto::default_instance() {
5531  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5532  return *internal_default_instance();
5533 }
5534 
5535 
5536 void InverseConstraintProto::Clear() {
5537 // @@protoc_insertion_point(message_clear_start:operations_research.sat.InverseConstraintProto)
5538  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5539  // Prevent compiler warnings about cached_has_bits being unused
5540  (void) cached_has_bits;
5541 
5542  f_direct_.Clear();
5543  f_inverse_.Clear();
5544  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5545 }
5546 
5547 const char* InverseConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5548 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5549  while (!ctx->Done(&ptr)) {
5551  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5552  CHK_(ptr);
5553  switch (tag >> 3) {
5554  // repeated int32 f_direct = 1;
5555  case 1:
5556  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5557  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_direct(), ptr, ctx);
5558  CHK_(ptr);
5559  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5560  _internal_add_f_direct(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5561  CHK_(ptr);
5562  } else goto handle_unusual;
5563  continue;
5564  // repeated int32 f_inverse = 2;
5565  case 2:
5566  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5567  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_inverse(), ptr, ctx);
5568  CHK_(ptr);
5569  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5570  _internal_add_f_inverse(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5571  CHK_(ptr);
5572  } else goto handle_unusual;
5573  continue;
5574  default: {
5575  handle_unusual:
5576  if ((tag & 7) == 4 || tag == 0) {
5577  ctx->SetLastTag(tag);
5578  goto success;
5579  }
5580  ptr = UnknownFieldParse(tag,
5581  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5582  ptr, ctx);
5583  CHK_(ptr != nullptr);
5584  continue;
5585  }
5586  } // switch
5587  } // while
5588 success:
5589  return ptr;
5590 failure:
5591  ptr = nullptr;
5592  goto success;
5593 #undef CHK_
5594 }
5595 
5596 ::PROTOBUF_NAMESPACE_ID::uint8* InverseConstraintProto::_InternalSerialize(
5597  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5598  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.InverseConstraintProto)
5599  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5600  (void) cached_has_bits;
5601 
5602  // repeated int32 f_direct = 1;
5603  {
5604  int byte_size = _f_direct_cached_byte_size_.load(std::memory_order_relaxed);
5605  if (byte_size > 0) {
5606  target = stream->WriteInt32Packed(
5607  1, _internal_f_direct(), byte_size, target);
5608  }
5609  }
5610 
5611  // repeated int32 f_inverse = 2;
5612  {
5613  int byte_size = _f_inverse_cached_byte_size_.load(std::memory_order_relaxed);
5614  if (byte_size > 0) {
5615  target = stream->WriteInt32Packed(
5616  2, _internal_f_inverse(), byte_size, target);
5617  }
5618  }
5619 
5620  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5621  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5622  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5623  }
5624  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.InverseConstraintProto)
5625  return target;
5626 }
5627 
5628 size_t InverseConstraintProto::ByteSizeLong() const {
5629 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.InverseConstraintProto)
5630  size_t total_size = 0;
5631 
5632  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5633  // Prevent compiler warnings about cached_has_bits being unused
5634  (void) cached_has_bits;
5635 
5636  // repeated int32 f_direct = 1;
5637  {
5638  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5639  Int32Size(this->f_direct_);
5640  if (data_size > 0) {
5641  total_size += 1 +
5642  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5643  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5644  }
5645  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5646  _f_direct_cached_byte_size_.store(cached_size,
5647  std::memory_order_relaxed);
5648  total_size += data_size;
5649  }
5650 
5651  // repeated int32 f_inverse = 2;
5652  {
5653  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5654  Int32Size(this->f_inverse_);
5655  if (data_size > 0) {
5656  total_size += 1 +
5657  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5658  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5659  }
5660  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5661  _f_inverse_cached_byte_size_.store(cached_size,
5662  std::memory_order_relaxed);
5663  total_size += data_size;
5664  }
5665 
5666  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5667  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5668  _internal_metadata_, total_size, &_cached_size_);
5669  }
5670  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5671  SetCachedSize(cached_size);
5672  return total_size;
5673 }
5674 
5675 void InverseConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5676 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.InverseConstraintProto)
5677  GOOGLE_DCHECK_NE(&from, this);
5678  const InverseConstraintProto* source =
5679  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<InverseConstraintProto>(
5680  &from);
5681  if (source == nullptr) {
5682  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.InverseConstraintProto)
5683  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5684  } else {
5685  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.InverseConstraintProto)
5686  MergeFrom(*source);
5687  }
5688 }
5689 
5690 void InverseConstraintProto::MergeFrom(const InverseConstraintProto& from) {
5691 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.InverseConstraintProto)
5692  GOOGLE_DCHECK_NE(&from, this);
5693  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5694  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5695  (void) cached_has_bits;
5696 
5697  f_direct_.MergeFrom(from.f_direct_);
5698  f_inverse_.MergeFrom(from.f_inverse_);
5699 }
5700 
5701 void InverseConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5702 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.InverseConstraintProto)
5703  if (&from == this) return;
5704  Clear();
5705  MergeFrom(from);
5706 }
5707 
5708 void InverseConstraintProto::CopyFrom(const InverseConstraintProto& from) {
5709 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.InverseConstraintProto)
5710  if (&from == this) return;
5711  Clear();
5712  MergeFrom(from);
5713 }
5714 
5715 bool InverseConstraintProto::IsInitialized() const {
5716  return true;
5717 }
5718 
5719 void InverseConstraintProto::InternalSwap(InverseConstraintProto* other) {
5720  using std::swap;
5721  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5722  f_direct_.InternalSwap(&other->f_direct_);
5723  f_inverse_.InternalSwap(&other->f_inverse_);
5724 }
5725 
5726 ::PROTOBUF_NAMESPACE_ID::Metadata InverseConstraintProto::GetMetadata() const {
5727  return GetMetadataStatic();
5728 }
5729 
5730 
5731 // ===================================================================
5732 
5734  public:
5735 };
5736 
5737 AutomatonConstraintProto::AutomatonConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5738  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5739  final_states_(arena),
5740  transition_tail_(arena),
5741  transition_head_(arena),
5742  transition_label_(arena),
5743  vars_(arena) {
5744  SharedCtor();
5745  RegisterArenaDtor(arena);
5746  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AutomatonConstraintProto)
5747 }
5748 AutomatonConstraintProto::AutomatonConstraintProto(const AutomatonConstraintProto& from)
5749  : ::PROTOBUF_NAMESPACE_ID::Message(),
5750  final_states_(from.final_states_),
5751  transition_tail_(from.transition_tail_),
5752  transition_head_(from.transition_head_),
5753  transition_label_(from.transition_label_),
5754  vars_(from.vars_) {
5755  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5756  starting_state_ = from.starting_state_;
5757  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AutomatonConstraintProto)
5758 }
5759 
5760 void AutomatonConstraintProto::SharedCtor() {
5761  starting_state_ = PROTOBUF_LONGLONG(0);
5762 }
5763 
5764 AutomatonConstraintProto::~AutomatonConstraintProto() {
5765  // @@protoc_insertion_point(destructor:operations_research.sat.AutomatonConstraintProto)
5766  SharedDtor();
5767  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5768 }
5769 
5770 void AutomatonConstraintProto::SharedDtor() {
5771  GOOGLE_DCHECK(GetArena() == nullptr);
5772 }
5773 
5774 void AutomatonConstraintProto::ArenaDtor(void* object) {
5775  AutomatonConstraintProto* _this = reinterpret_cast< AutomatonConstraintProto* >(object);
5776  (void)_this;
5777 }
5778 void AutomatonConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5779 }
5780 void AutomatonConstraintProto::SetCachedSize(int size) const {
5781  _cached_size_.Set(size);
5782 }
5783 const AutomatonConstraintProto& AutomatonConstraintProto::default_instance() {
5784  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5785  return *internal_default_instance();
5786 }
5787 
5788 
5789 void AutomatonConstraintProto::Clear() {
5790 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AutomatonConstraintProto)
5791  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5792  // Prevent compiler warnings about cached_has_bits being unused
5793  (void) cached_has_bits;
5794 
5795  final_states_.Clear();
5796  transition_tail_.Clear();
5797  transition_head_.Clear();
5798  transition_label_.Clear();
5799  vars_.Clear();
5800  starting_state_ = PROTOBUF_LONGLONG(0);
5801  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5802 }
5803 
5804 const char* AutomatonConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5805 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5806  while (!ctx->Done(&ptr)) {
5808  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5809  CHK_(ptr);
5810  switch (tag >> 3) {
5811  // int64 starting_state = 2;
5812  case 2:
5813  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
5814  starting_state_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5815  CHK_(ptr);
5816  } else goto handle_unusual;
5817  continue;
5818  // repeated int64 final_states = 3;
5819  case 3:
5820  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
5821  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_final_states(), ptr, ctx);
5822  CHK_(ptr);
5823  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
5824  _internal_add_final_states(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5825  CHK_(ptr);
5826  } else goto handle_unusual;
5827  continue;
5828  // repeated int64 transition_tail = 4;
5829  case 4:
5830  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
5831  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_tail(), ptr, ctx);
5832  CHK_(ptr);
5833  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
5834  _internal_add_transition_tail(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5835  CHK_(ptr);
5836  } else goto handle_unusual;
5837  continue;
5838  // repeated int64 transition_head = 5;
5839  case 5:
5840  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
5841  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_head(), ptr, ctx);
5842  CHK_(ptr);
5843  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
5844  _internal_add_transition_head(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5845  CHK_(ptr);
5846  } else goto handle_unusual;
5847  continue;
5848  // repeated int64 transition_label = 6;
5849  case 6:
5850  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
5851  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_label(), ptr, ctx);
5852  CHK_(ptr);
5853  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48) {
5854  _internal_add_transition_label(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5855  CHK_(ptr);
5856  } else goto handle_unusual;
5857  continue;
5858  // repeated int32 vars = 7;
5859  case 7:
5860  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
5861  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5862  CHK_(ptr);
5863  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
5864  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5865  CHK_(ptr);
5866  } else goto handle_unusual;
5867  continue;
5868  default: {
5869  handle_unusual:
5870  if ((tag & 7) == 4 || tag == 0) {
5871  ctx->SetLastTag(tag);
5872  goto success;
5873  }
5874  ptr = UnknownFieldParse(tag,
5875  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5876  ptr, ctx);
5877  CHK_(ptr != nullptr);
5878  continue;
5879  }
5880  } // switch
5881  } // while
5882 success:
5883  return ptr;
5884 failure:
5885  ptr = nullptr;
5886  goto success;
5887 #undef CHK_
5888 }
5889 
5890 ::PROTOBUF_NAMESPACE_ID::uint8* AutomatonConstraintProto::_InternalSerialize(
5891  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5892  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AutomatonConstraintProto)
5893  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5894  (void) cached_has_bits;
5895 
5896  // int64 starting_state = 2;
5897  if (this->starting_state() != 0) {
5898  target = stream->EnsureSpace(target);
5899  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_starting_state(), target);
5900  }
5901 
5902  // repeated int64 final_states = 3;
5903  {
5904  int byte_size = _final_states_cached_byte_size_.load(std::memory_order_relaxed);
5905  if (byte_size > 0) {
5906  target = stream->WriteInt64Packed(
5907  3, _internal_final_states(), byte_size, target);
5908  }
5909  }
5910 
5911  // repeated int64 transition_tail = 4;
5912  {
5913  int byte_size = _transition_tail_cached_byte_size_.load(std::memory_order_relaxed);
5914  if (byte_size > 0) {
5915  target = stream->WriteInt64Packed(
5916  4, _internal_transition_tail(), byte_size, target);
5917  }
5918  }
5919 
5920  // repeated int64 transition_head = 5;
5921  {
5922  int byte_size = _transition_head_cached_byte_size_.load(std::memory_order_relaxed);
5923  if (byte_size > 0) {
5924  target = stream->WriteInt64Packed(
5925  5, _internal_transition_head(), byte_size, target);
5926  }
5927  }
5928 
5929  // repeated int64 transition_label = 6;
5930  {
5931  int byte_size = _transition_label_cached_byte_size_.load(std::memory_order_relaxed);
5932  if (byte_size > 0) {
5933  target = stream->WriteInt64Packed(
5934  6, _internal_transition_label(), byte_size, target);
5935  }
5936  }
5937 
5938  // repeated int32 vars = 7;
5939  {
5940  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5941  if (byte_size > 0) {
5942  target = stream->WriteInt32Packed(
5943  7, _internal_vars(), byte_size, target);
5944  }
5945  }
5946 
5947  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5948  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5949  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5950  }
5951  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AutomatonConstraintProto)
5952  return target;
5953 }
5954 
5955 size_t AutomatonConstraintProto::ByteSizeLong() const {
5956 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AutomatonConstraintProto)
5957  size_t total_size = 0;
5958 
5959  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5960  // Prevent compiler warnings about cached_has_bits being unused
5961  (void) cached_has_bits;
5962 
5963  // repeated int64 final_states = 3;
5964  {
5965  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5966  Int64Size(this->final_states_);
5967  if (data_size > 0) {
5968  total_size += 1 +
5969  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5970  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5971  }
5972  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5973  _final_states_cached_byte_size_.store(cached_size,
5974  std::memory_order_relaxed);
5975  total_size += data_size;
5976  }
5977 
5978  // repeated int64 transition_tail = 4;
5979  {
5980  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5981  Int64Size(this->transition_tail_);
5982  if (data_size > 0) {
5983  total_size += 1 +
5984  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5985  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5986  }
5987  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5988  _transition_tail_cached_byte_size_.store(cached_size,
5989  std::memory_order_relaxed);
5990  total_size += data_size;
5991  }
5992 
5993  // repeated int64 transition_head = 5;
5994  {
5995  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5996  Int64Size(this->transition_head_);
5997  if (data_size > 0) {
5998  total_size += 1 +
5999  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6000  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6001  }
6002  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6003  _transition_head_cached_byte_size_.store(cached_size,
6004  std::memory_order_relaxed);
6005  total_size += data_size;
6006  }
6007 
6008  // repeated int64 transition_label = 6;
6009  {
6010  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6011  Int64Size(this->transition_label_);
6012  if (data_size > 0) {
6013  total_size += 1 +
6014  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6015  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6016  }
6017  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6018  _transition_label_cached_byte_size_.store(cached_size,
6019  std::memory_order_relaxed);
6020  total_size += data_size;
6021  }
6022 
6023  // repeated int32 vars = 7;
6024  {
6025  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6026  Int32Size(this->vars_);
6027  if (data_size > 0) {
6028  total_size += 1 +
6029  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6030  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6031  }
6032  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6033  _vars_cached_byte_size_.store(cached_size,
6034  std::memory_order_relaxed);
6035  total_size += data_size;
6036  }
6037 
6038  // int64 starting_state = 2;
6039  if (this->starting_state() != 0) {
6040  total_size += 1 +
6041  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
6042  this->_internal_starting_state());
6043  }
6044 
6045  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
6046  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
6047  _internal_metadata_, total_size, &_cached_size_);
6048  }
6049  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
6050  SetCachedSize(cached_size);
6051  return total_size;
6052 }
6053 
6054 void AutomatonConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
6055 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AutomatonConstraintProto)
6056  GOOGLE_DCHECK_NE(&from, this);
6057  const AutomatonConstraintProto* source =
6058  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AutomatonConstraintProto>(
6059  &from);
6060  if (source == nullptr) {
6061  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AutomatonConstraintProto)
6062  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
6063  } else {
6064  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AutomatonConstraintProto)
6065  MergeFrom(*source);
6066  }
6067 }
6068 
6069 void AutomatonConstraintProto::MergeFrom(const AutomatonConstraintProto& from) {
6070 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AutomatonConstraintProto)
6071  GOOGLE_DCHECK_NE(&from, this);
6072  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6073  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6074  (void) cached_has_bits;
6075 
6076  final_states_.MergeFrom(from.final_states_);
6077  transition_tail_.MergeFrom(from.transition_tail_);
6078  transition_head_.MergeFrom(from.transition_head_);
6079  transition_label_.MergeFrom(from.transition_label_);
6080  vars_.MergeFrom(from.vars_);
6081  if (from.starting_state() != 0) {
6082  _internal_set_starting_state(from._internal_starting_state());
6083  }
6084 }
6085 
6086 void AutomatonConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
6087 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AutomatonConstraintProto)
6088  if (&from == this) return;
6089  Clear();
6090  MergeFrom(from);
6091 }
6092 
6093 void AutomatonConstraintProto::CopyFrom(const AutomatonConstraintProto& from) {
6094 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AutomatonConstraintProto)
6095  if (&from == this) return;
6096  Clear();
6097  MergeFrom(from);
6098 }
6099 
6100 bool AutomatonConstraintProto::IsInitialized() const {
6101  return true;
6102 }
6103 
6104 void AutomatonConstraintProto::InternalSwap(AutomatonConstraintProto* other) {
6105  using std::swap;
6106  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
6107  final_states_.InternalSwap(&other->final_states_);
6108  transition_tail_.InternalSwap(&other->transition_tail_);
6109  transition_head_.InternalSwap(&other->transition_head_);
6110  transition_label_.InternalSwap(&other->transition_label_);
6111  vars_.InternalSwap(&other->vars_);
6112  swap(starting_state_, other->starting_state_);
6113 }
6114 
6115 ::PROTOBUF_NAMESPACE_ID::Metadata AutomatonConstraintProto::GetMetadata() const {
6116  return GetMetadataStatic();
6117 }
6118 
6119 
6120 // ===================================================================
6121 
6123  public:
6124  static const ::operations_research::sat::BoolArgumentProto& bool_or(const ConstraintProto* msg);
6125  static const ::operations_research::sat::BoolArgumentProto& bool_and(const ConstraintProto* msg);
6126  static const ::operations_research::sat::BoolArgumentProto& at_most_one(const ConstraintProto* msg);
6127  static const ::operations_research::sat::BoolArgumentProto& exactly_one(const ConstraintProto* msg);
6128  static const ::operations_research::sat::BoolArgumentProto& bool_xor(const ConstraintProto* msg);
6129  static const ::operations_research::sat::IntegerArgumentProto& int_div(const ConstraintProto* msg);
6130  static const ::operations_research::sat::IntegerArgumentProto& int_mod(const ConstraintProto* msg);
6131  static const ::operations_research::sat::IntegerArgumentProto& int_max(const ConstraintProto* msg);
6132  static const ::operations_research::sat::LinearArgumentProto& lin_max(const ConstraintProto* msg);
6133  static const ::operations_research::sat::IntegerArgumentProto& int_min(const ConstraintProto* msg);
6134  static const ::operations_research::sat::LinearArgumentProto& lin_min(const ConstraintProto* msg);
6135  static const ::operations_research::sat::IntegerArgumentProto& int_prod(const ConstraintProto* msg);
6136  static const ::operations_research::sat::LinearConstraintProto& linear(const ConstraintProto* msg);
6137  static const ::operations_research::sat::AllDifferentConstraintProto& all_diff(const ConstraintProto* msg);
6138  static const ::operations_research::sat::ElementConstraintProto& element(const ConstraintProto* msg);
6139  static const ::operations_research::sat::CircuitConstraintProto& circuit(const ConstraintProto* msg);
6140  static const ::operations_research::sat::RoutesConstraintProto& routes(const ConstraintProto* msg);
6141  static const ::operations_research::sat::TableConstraintProto& table(const ConstraintProto* msg);
6142  static const ::operations_research::sat::AutomatonConstraintProto& automaton(const ConstraintProto* msg);
6143  static const ::operations_research::sat::InverseConstraintProto& inverse(const ConstraintProto* msg);
6144  static const ::operations_research::sat::ReservoirConstraintProto& reservoir(const ConstraintProto* msg);
6145  static const ::operations_research::sat::IntervalConstraintProto& interval(const ConstraintProto* msg);
6146  static const ::operations_research::sat::NoOverlapConstraintProto& no_overlap(const ConstraintProto* msg);
6147  static const ::operations_research::sat::NoOverlap2DConstraintProto& no_overlap_2d(const ConstraintProto* msg);
6148  static const ::operations_research::sat::CumulativeConstraintProto& cumulative(const ConstraintProto* msg);
6149 };
6150 
6151 const ::operations_research::sat::BoolArgumentProto&
6152 ConstraintProto::_Internal::bool_or(const ConstraintProto* msg) {
6153  return *msg->constraint_.bool_or_;
6154 }
6155 const ::operations_research::sat::BoolArgumentProto&
6156 ConstraintProto::_Internal::bool_and(const ConstraintProto* msg) {
6157  return *msg->constraint_.bool_and_;
6158 }
6159 const ::operations_research::sat::BoolArgumentProto&
6160 ConstraintProto::_Internal::at_most_one(const ConstraintProto* msg) {
6161  return *msg->constraint_.at_most_one_;
6162 }
6163 const ::operations_research::sat::BoolArgumentProto&
6164 ConstraintProto::_Internal::exactly_one(const ConstraintProto* msg) {
6165  return *msg->constraint_.exactly_one_;
6166 }
6167 const ::operations_research::sat::BoolArgumentProto&
6168 ConstraintProto::_Internal::bool_xor(const ConstraintProto* msg) {
6169  return *msg->constraint_.bool_xor_;
6170 }
6171 const ::operations_research::sat::IntegerArgumentProto&
6172 ConstraintProto::_Internal::int_div(const ConstraintProto* msg) {
6173  return *msg->constraint_.int_div_;
6174 }
6175 const ::operations_research::sat::IntegerArgumentProto&
6176 ConstraintProto::_Internal::int_mod(const ConstraintProto* msg) {
6177  return *msg->constraint_.int_mod_;
6178 }
6179 const ::operations_research::sat::IntegerArgumentProto&
6180 ConstraintProto::_Internal::int_max(const ConstraintProto* msg) {
6181  return *msg->constraint_.int_max_;
6182 }
6183 const ::operations_research::sat::LinearArgumentProto&
6184 ConstraintProto::_Internal::lin_max(const ConstraintProto* msg) {
6185  return *msg->constraint_.lin_max_;
6186 }
6187 const ::operations_research::sat::IntegerArgumentProto&
6188 ConstraintProto::_Internal::int_min(const ConstraintProto* msg) {
6189  return *msg->constraint_.int_min_;
6190 }
6191 const ::operations_research::sat::LinearArgumentProto&
6192 ConstraintProto::_Internal::lin_min(const ConstraintProto* msg) {
6193  return *msg->constraint_.lin_min_;
6194 }
6195 const ::operations_research::sat::IntegerArgumentProto&
6196 ConstraintProto::_Internal::int_prod(const ConstraintProto* msg) {
6197  return *msg->constraint_.int_prod_;
6198 }
6199 const ::operations_research::sat::LinearConstraintProto&
6200 ConstraintProto::_Internal::linear(const ConstraintProto* msg) {
6201  return *msg->constraint_.linear_;
6202 }
6203 const ::operations_research::sat::AllDifferentConstraintProto&
6204 ConstraintProto::_Internal::all_diff(const ConstraintProto* msg) {
6205  return *msg->constraint_.all_diff_;
6206 }
6207 const ::operations_research::sat::ElementConstraintProto&
6208 ConstraintProto::_Internal::element(const ConstraintProto* msg) {
6209  return *msg->constraint_.element_;
6210 }
6211 const ::operations_research::sat::CircuitConstraintProto&
6212 ConstraintProto::_Internal::circuit(const ConstraintProto* msg) {
6213  return *msg->constraint_.circuit_;
6214 }
6215 const ::operations_research::sat::RoutesConstraintProto&
6216 ConstraintProto::_Internal::routes(const ConstraintProto* msg) {
6217  return *msg->constraint_.routes_;
6218 }
6219 const ::operations_research::sat::TableConstraintProto&
6220 ConstraintProto::_Internal::table(const ConstraintProto* msg) {
6221  return *msg->constraint_.table_;
6222 }
6223 const ::operations_research::sat::AutomatonConstraintProto&
6224 ConstraintProto::_Internal::automaton(const ConstraintProto* msg) {
6225  return *msg->constraint_.automaton_;
6226 }
6227 const ::operations_research::sat::InverseConstraintProto&
6228 ConstraintProto::_Internal::inverse(const ConstraintProto* msg) {
6229  return *msg->constraint_.inverse_;
6230 }
6231 const ::operations_research::sat::ReservoirConstraintProto&
6232 ConstraintProto::_Internal::reservoir(const ConstraintProto* msg) {
6233  return *msg->constraint_.reservoir_;
6234 }
6235 const ::operations_research::sat::IntervalConstraintProto&
6236 ConstraintProto::_Internal::interval(const ConstraintProto* msg) {
6237  return *msg->constraint_.interval_;
6238 }
6239 const ::operations_research::sat::NoOverlapConstraintProto&
6240 ConstraintProto::_Internal::no_overlap(const ConstraintProto* msg) {
6241  return *msg->constraint_.no_overlap_;
6242 }
6243 const ::operations_research::sat::NoOverlap2DConstraintProto&
6244 ConstraintProto::_Internal::no_overlap_2d(const ConstraintProto* msg) {
6245  return *msg->constraint_.no_overlap_2d_;
6246 }
6247 const ::operations_research::sat::CumulativeConstraintProto&
6248 ConstraintProto::_Internal::cumulative(const ConstraintProto* msg) {
6249  return *msg->constraint_.cumulative_;
6250 }
6251 void ConstraintProto::set_allocated_bool_or(::operations_research::sat::BoolArgumentProto* bool_or) {
6252  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6253  clear_constraint();
6254  if (bool_or) {
6255  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6256  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_or);
6257  if (message_arena != submessage_arena) {
6258  bool_or = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6259  message_arena, bool_or, submessage_arena);
6260  }
6261  set_has_bool_or();
6262  constraint_.bool_or_ = bool_or;
6263  }
6264  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_or)
6265 }
6266 void ConstraintProto::set_allocated_bool_and(::operations_research::sat::BoolArgumentProto* bool_and) {
6267  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6268  clear_constraint();
6269  if (bool_and) {
6270  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6271  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_and);
6272  if (message_arena != submessage_arena) {
6273  bool_and = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6274  message_arena, bool_and, submessage_arena);
6275  }
6276  set_has_bool_and();
6277  constraint_.bool_and_ = bool_and;
6278  }
6279  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_and)
6280 }
6281 void ConstraintProto::set_allocated_at_most_one(::operations_research::sat::BoolArgumentProto* at_most_one) {
6282  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6283  clear_constraint();
6284  if (at_most_one) {
6285  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6286  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(at_most_one);
6287  if (message_arena != submessage_arena) {
6288  at_most_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6289  message_arena, at_most_one, submessage_arena);
6290  }
6291  set_has_at_most_one();
6292  constraint_.at_most_one_ = at_most_one;
6293  }
6294  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.at_most_one)
6295 }
6296 void ConstraintProto::set_allocated_exactly_one(::operations_research::sat::BoolArgumentProto* exactly_one) {
6297  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6298  clear_constraint();
6299  if (exactly_one) {
6300  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6301  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(exactly_one);
6302  if (message_arena != submessage_arena) {
6303  exactly_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6304  message_arena, exactly_one, submessage_arena);
6305  }
6306  set_has_exactly_one();
6307  constraint_.exactly_one_ = exactly_one;
6308  }
6309  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.exactly_one)
6310 }
6311 void ConstraintProto::set_allocated_bool_xor(::operations_research::sat::BoolArgumentProto* bool_xor) {
6312  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6313  clear_constraint();
6314  if (bool_xor) {
6315  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6316  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_xor);
6317  if (message_arena != submessage_arena) {
6318  bool_xor = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6319  message_arena, bool_xor, submessage_arena);
6320  }
6321  set_has_bool_xor();
6322  constraint_.bool_xor_ = bool_xor;
6323  }
6324  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_xor)
6325 }
6326 void ConstraintProto::set_allocated_int_div(::operations_research::sat::IntegerArgumentProto* int_div) {
6327  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6328  clear_constraint();
6329  if (int_div) {
6330  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6331  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_div);
6332  if (message_arena != submessage_arena) {
6333  int_div = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6334  message_arena, int_div, submessage_arena);
6335  }
6336  set_has_int_div();
6337  constraint_.int_div_ = int_div;
6338  }
6339  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_div)
6340 }
6341 void ConstraintProto::set_allocated_int_mod(::operations_research::sat::IntegerArgumentProto* int_mod) {
6342  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6343  clear_constraint();
6344  if (int_mod) {
6345  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6346  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_mod);
6347  if (message_arena != submessage_arena) {
6348  int_mod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6349  message_arena, int_mod, submessage_arena);
6350  }
6351  set_has_int_mod();
6352  constraint_.int_mod_ = int_mod;
6353  }
6354  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_mod)
6355 }
6356 void ConstraintProto::set_allocated_int_max(::operations_research::sat::IntegerArgumentProto* int_max) {
6357  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6358  clear_constraint();
6359  if (int_max) {
6360  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6361  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_max);
6362  if (message_arena != submessage_arena) {
6363  int_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6364  message_arena, int_max, submessage_arena);
6365  }
6366  set_has_int_max();
6367  constraint_.int_max_ = int_max;
6368  }
6369  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_max)
6370 }
6371 void ConstraintProto::set_allocated_lin_max(::operations_research::sat::LinearArgumentProto* lin_max) {
6372  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6373  clear_constraint();
6374  if (lin_max) {
6375  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6376  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_max);
6377  if (message_arena != submessage_arena) {
6378  lin_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6379  message_arena, lin_max, submessage_arena);
6380  }
6381  set_has_lin_max();
6382  constraint_.lin_max_ = lin_max;
6383  }
6384  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_max)
6385 }
6386 void ConstraintProto::set_allocated_int_min(::operations_research::sat::IntegerArgumentProto* int_min) {
6387  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6388  clear_constraint();
6389  if (int_min) {
6390  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6391  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_min);
6392  if (message_arena != submessage_arena) {
6393  int_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6394  message_arena, int_min, submessage_arena);
6395  }
6396  set_has_int_min();
6397  constraint_.int_min_ = int_min;
6398  }
6399  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_min)
6400 }
6401 void ConstraintProto::set_allocated_lin_min(::operations_research::sat::LinearArgumentProto* lin_min) {
6402  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6403  clear_constraint();
6404  if (lin_min) {
6405  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6406  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_min);
6407  if (message_arena != submessage_arena) {
6408  lin_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6409  message_arena, lin_min, submessage_arena);
6410  }
6411  set_has_lin_min();
6412  constraint_.lin_min_ = lin_min;
6413  }
6414  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_min)
6415 }
6416 void ConstraintProto::set_allocated_int_prod(::operations_research::sat::IntegerArgumentProto* int_prod) {
6417  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6418  clear_constraint();
6419  if (int_prod) {
6420  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6421  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_prod);
6422  if (message_arena != submessage_arena) {
6423  int_prod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6424  message_arena, int_prod, submessage_arena);
6425  }
6426  set_has_int_prod();
6427  constraint_.int_prod_ = int_prod;
6428  }
6429  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_prod)
6430 }
6431 void ConstraintProto::set_allocated_linear(::operations_research::sat::LinearConstraintProto* linear) {
6432  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6433  clear_constraint();
6434  if (linear) {
6435  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6436  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(linear);
6437  if (message_arena != submessage_arena) {
6438  linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6439  message_arena, linear, submessage_arena);
6440  }
6441  set_has_linear();
6442  constraint_.linear_ = linear;
6443  }
6444  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.linear)
6445 }
6446 void ConstraintProto::set_allocated_all_diff(::operations_research::sat::AllDifferentConstraintProto* all_diff) {
6447  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6448  clear_constraint();
6449  if (all_diff) {
6450  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6451  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(all_diff);
6452  if (message_arena != submessage_arena) {
6453  all_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6454  message_arena, all_diff, submessage_arena);
6455  }
6456  set_has_all_diff();
6457  constraint_.all_diff_ = all_diff;
6458  }
6459  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.all_diff)
6460 }
6461 void ConstraintProto::set_allocated_element(::operations_research::sat::ElementConstraintProto* element) {
6462  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6463  clear_constraint();
6464  if (element) {
6465  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6466  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(element);
6467  if (message_arena != submessage_arena) {
6468  element = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6469  message_arena, element, submessage_arena);
6470  }
6471  set_has_element();
6472  constraint_.element_ = element;
6473  }
6474  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.element)
6475 }
6476 void ConstraintProto::set_allocated_circuit(::operations_research::sat::CircuitConstraintProto* circuit) {
6477  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6478  clear_constraint();
6479  if (circuit) {
6480  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6481  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(circuit);
6482  if (message_arena != submessage_arena) {
6483  circuit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6484  message_arena, circuit, submessage_arena);
6485  }
6486  set_has_circuit();
6487  constraint_.circuit_ = circuit;
6488  }
6489  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.circuit)
6490 }
6491 void ConstraintProto::set_allocated_routes(::operations_research::sat::RoutesConstraintProto* routes) {
6492  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6493  clear_constraint();
6494  if (routes) {
6495  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6496  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(routes);
6497  if (message_arena != submessage_arena) {
6498  routes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6499  message_arena, routes, submessage_arena);
6500  }
6501  set_has_routes();
6502  constraint_.routes_ = routes;
6503  }
6504  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.routes)
6505 }
6506 void ConstraintProto::set_allocated_table(::operations_research::sat::TableConstraintProto* table) {
6507  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6508  clear_constraint();
6509  if (table) {
6510  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6511  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(table);
6512  if (message_arena != submessage_arena) {
6513  table = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6514  message_arena, table, submessage_arena);
6515  }
6516  set_has_table();
6517  constraint_.table_ = table;
6518  }
6519  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.table)
6520 }
6521 void ConstraintProto::set_allocated_automaton(::operations_research::sat::AutomatonConstraintProto* automaton) {
6522  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6523  clear_constraint();
6524  if (automaton) {
6525  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6526  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(automaton);
6527  if (message_arena != submessage_arena) {
6528  automaton = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6529  message_arena, automaton, submessage_arena);
6530  }
6531  set_has_automaton();
6532  constraint_.automaton_ = automaton;
6533  }
6534  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.automaton)
6535 }
6536 void ConstraintProto::set_allocated_inverse(::operations_research::sat::InverseConstraintProto* inverse) {
6537  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6538  clear_constraint();
6539  if (inverse) {
6540  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6541  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(inverse);
6542  if (message_arena != submessage_arena) {
6543  inverse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6544  message_arena, inverse, submessage_arena);
6545  }
6546  set_has_inverse();
6547  constraint_.inverse_ = inverse;
6548  }
6549  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.inverse)
6550 }
6551 void ConstraintProto::set_allocated_reservoir(::operations_research::sat::ReservoirConstraintProto* reservoir) {
6552  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6553  clear_constraint();
6554  if (reservoir) {
6555  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6556  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(reservoir);
6557  if (message_arena != submessage_arena) {
6558  reservoir = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6559  message_arena, reservoir, submessage_arena);
6560  }
6561  set_has_reservoir();
6562  constraint_.reservoir_ = reservoir;
6563  }
6564  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.reservoir)
6565 }
6566 void ConstraintProto::set_allocated_interval(::operations_research::sat::IntervalConstraintProto* interval) {
6567  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6568  clear_constraint();
6569  if (interval) {
6570  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6571  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(interval);
6572  if (message_arena != submessage_arena) {
6573  interval = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6574  message_arena, interval, submessage_arena);
6575  }
6576  set_has_interval();
6577  constraint_.interval_ = interval;
6578  }
6579  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.interval)
6580 }
6581 void ConstraintProto::set_allocated_no_overlap(::operations_research::sat::NoOverlapConstraintProto* no_overlap) {
6582  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6583  clear_constraint();
6584  if (no_overlap) {
6585  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6586  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap);
6587  if (message_arena != submessage_arena) {
6588  no_overlap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6589  message_arena, no_overlap, submessage_arena);
6590  }
6591  set_has_no_overlap();
6592  constraint_.no_overlap_ = no_overlap;
6593  }
6594  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap)
6595 }
6596 void ConstraintProto::set_allocated_no_overlap_2d(::operations_research::sat::NoOverlap2DConstraintProto* no_overlap_2d) {
6597  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6598  clear_constraint();
6599  if (no_overlap_2d) {
6600  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6601  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap_2d);
6602  if (message_arena != submessage_arena) {
6603  no_overlap_2d = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6604  message_arena, no_overlap_2d, submessage_arena);
6605  }
6606  set_has_no_overlap_2d();
6607  constraint_.no_overlap_2d_ = no_overlap_2d;
6608  }
6609  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap_2d)
6610 }
6611 void ConstraintProto::set_allocated_cumulative(::operations_research::sat::CumulativeConstraintProto* cumulative) {
6612  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6613  clear_constraint();
6614  if (cumulative) {
6615  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6616  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(cumulative);
6617  if (message_arena != submessage_arena) {
6618  cumulative = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6619  message_arena, cumulative, submessage_arena);
6620  }
6621  set_has_cumulative();
6622  constraint_.cumulative_ = cumulative;
6623  }
6624  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.cumulative)
6625 }
6626 ConstraintProto::ConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
6627  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
6628  enforcement_literal_(arena) {
6629  SharedCtor();
6630  RegisterArenaDtor(arena);
6631  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ConstraintProto)
6632 }
6633 ConstraintProto::ConstraintProto(const ConstraintProto& from)
6634  : ::PROTOBUF_NAMESPACE_ID::Message(),
6635  enforcement_literal_(from.enforcement_literal_) {
6636  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6637  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6638  if (!from._internal_name().empty()) {
6639  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
6640  GetArena());
6641  }
6642  clear_has_constraint();
6643  switch (from.constraint_case()) {
6644  case kBoolOr: {
6645  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
6646  break;
6647  }
6648  case kBoolAnd: {
6649  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
6650  break;
6651  }
6652  case kAtMostOne: {
6653  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
6654  break;
6655  }
6656  case kExactlyOne: {
6657  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
6658  break;
6659  }
6660  case kBoolXor: {
6661  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
6662  break;
6663  }
6664  case kIntDiv: {
6665  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
6666  break;
6667  }
6668  case kIntMod: {
6669  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
6670  break;
6671  }
6672  case kIntMax: {
6673  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
6674  break;
6675  }
6676  case kLinMax: {
6677  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
6678  break;
6679  }
6680  case kIntMin: {
6681  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
6682  break;
6683  }
6684  case kLinMin: {
6685  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
6686  break;
6687  }
6688  case kIntProd: {
6689  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
6690  break;
6691  }
6692  case kLinear: {
6693  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
6694  break;
6695  }
6696  case kAllDiff: {
6697  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
6698  break;
6699  }
6700  case kElement: {
6701  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
6702  break;
6703  }
6704  case kCircuit: {
6705  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
6706  break;
6707  }
6708  case kRoutes: {
6709  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
6710  break;
6711  }
6712  case kTable: {
6713  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
6714  break;
6715  }
6716  case kAutomaton: {
6717  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
6718  break;
6719  }
6720  case kInverse: {
6721  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
6722  break;
6723  }
6724  case kReservoir: {
6725  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
6726  break;
6727  }
6728  case kInterval: {
6729  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
6730  break;
6731  }
6732  case kNoOverlap: {
6733  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
6734  break;
6735  }
6736  case kNoOverlap2D: {
6737  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
6738  break;
6739  }
6740  case kCumulative: {
6741  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
6742  break;
6743  }
6744  case CONSTRAINT_NOT_SET: {
6745  break;
6746  }
6747  }
6748  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ConstraintProto)
6749 }
6750 
6751 void ConstraintProto::SharedCtor() {
6752  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
6753  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6754  clear_has_constraint();
6755 }
6756 
6757 ConstraintProto::~ConstraintProto() {
6758  // @@protoc_insertion_point(destructor:operations_research.sat.ConstraintProto)
6759  SharedDtor();
6760  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6761 }
6762 
6763 void ConstraintProto::SharedDtor() {
6764  GOOGLE_DCHECK(GetArena() == nullptr);
6765  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6766  if (has_constraint()) {
6767  clear_constraint();
6768  }
6769 }
6770 
6771 void ConstraintProto::ArenaDtor(void* object) {
6772  ConstraintProto* _this = reinterpret_cast< ConstraintProto* >(object);
6773  (void)_this;
6774 }
6775 void ConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
6776 }
6777 void ConstraintProto::SetCachedSize(int size) const {
6778  _cached_size_.Set(size);
6779 }
6780 const ConstraintProto& ConstraintProto::default_instance() {
6781  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
6782  return *internal_default_instance();
6783 }
6784 
6785 
6786 void ConstraintProto::clear_constraint() {
6787 // @@protoc_insertion_point(one_of_clear_start:operations_research.sat.ConstraintProto)
6788  switch (constraint_case()) {
6789  case kBoolOr: {
6790  if (GetArena() == nullptr) {
6791  delete constraint_.bool_or_;
6792  }
6793  break;
6794  }
6795  case kBoolAnd: {
6796  if (GetArena() == nullptr) {
6797  delete constraint_.bool_and_;
6798  }
6799  break;
6800  }
6801  case kAtMostOne: {
6802  if (GetArena() == nullptr) {
6803  delete constraint_.at_most_one_;
6804  }
6805  break;
6806  }
6807  case kExactlyOne: {
6808  if (GetArena() == nullptr) {
6809  delete constraint_.exactly_one_;
6810  }
6811  break;
6812  }
6813  case kBoolXor: {
6814  if (GetArena() == nullptr) {
6815  delete constraint_.bool_xor_;
6816  }
6817  break;
6818  }
6819  case kIntDiv: {
6820  if (GetArena() == nullptr) {
6821  delete constraint_.int_div_;
6822  }
6823  break;
6824  }
6825  case kIntMod: {
6826  if (GetArena() == nullptr) {
6827  delete constraint_.int_mod_;
6828  }
6829  break;
6830  }
6831  case kIntMax: {
6832  if (GetArena() == nullptr) {
6833  delete constraint_.int_max_;
6834  }
6835  break;
6836  }
6837  case kLinMax: {
6838  if (GetArena() == nullptr) {
6839  delete constraint_.lin_max_;
6840  }
6841  break;
6842  }
6843  case kIntMin: {
6844  if (GetArena() == nullptr) {
6845  delete constraint_.int_min_;
6846  }
6847  break;
6848  }
6849  case kLinMin: {
6850  if (GetArena() == nullptr) {
6851  delete constraint_.lin_min_;
6852  }
6853  break;
6854  }
6855  case kIntProd: {
6856  if (GetArena() == nullptr) {
6857  delete constraint_.int_prod_;
6858  }
6859  break;
6860  }
6861  case kLinear: {
6862  if (GetArena() == nullptr) {
6863  delete constraint_.linear_;
6864  }
6865  break;
6866  }
6867  case kAllDiff: {
6868  if (GetArena() == nullptr) {
6869  delete constraint_.all_diff_;
6870  }
6871  break;
6872  }
6873  case kElement: {
6874  if (GetArena() == nullptr) {
6875  delete constraint_.element_;
6876  }
6877  break;
6878  }
6879  case kCircuit: {
6880  if (GetArena() == nullptr) {
6881  delete constraint_.circuit_;
6882  }
6883  break;
6884  }
6885  case kRoutes: {
6886  if (GetArena() == nullptr) {
6887  delete constraint_.routes_;
6888  }
6889  break;
6890  }
6891  case kTable: {
6892  if (GetArena() == nullptr) {
6893  delete constraint_.table_;
6894  }
6895  break;
6896  }
6897  case kAutomaton: {
6898  if (GetArena() == nullptr) {
6899  delete constraint_.automaton_;
6900  }
6901  break;
6902  }
6903  case kInverse: {
6904  if (GetArena() == nullptr) {
6905  delete constraint_.inverse_;
6906  }
6907  break;
6908  }
6909  case kReservoir: {
6910  if (GetArena() == nullptr) {
6911  delete constraint_.reservoir_;
6912  }
6913  break;
6914  }
6915  case kInterval: {
6916  if (GetArena() == nullptr) {
6917  delete constraint_.interval_;
6918  }
6919  break;
6920  }
6921  case kNoOverlap: {
6922  if (GetArena() == nullptr) {
6923  delete constraint_.no_overlap_;
6924  }
6925  break;
6926  }
6927  case kNoOverlap2D: {
6928  if (GetArena() == nullptr) {
6929  delete constraint_.no_overlap_2d_;
6930  }
6931  break;
6932  }
6933  case kCumulative: {
6934  if (GetArena() == nullptr) {
6935  delete constraint_.cumulative_;
6936  }
6937  break;
6938  }
6939  case CONSTRAINT_NOT_SET: {
6940  break;
6941  }
6942  }
6943  _oneof_case_[0] = CONSTRAINT_NOT_SET;
6944 }
6945 
6946 
6947 void ConstraintProto::Clear() {
6948 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ConstraintProto)
6949  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6950  // Prevent compiler warnings about cached_has_bits being unused
6951  (void) cached_has_bits;
6952 
6953  enforcement_literal_.Clear();
6954  name_.ClearToEmpty();
6955  clear_constraint();
6956  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6957 }
6958 
6959 const char* ConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
6960 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
6961  while (!ctx->Done(&ptr)) {
6963  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
6964  CHK_(ptr);
6965  switch (tag >> 3) {
6966  // string name = 1;
6967  case 1:
6968  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
6969  auto str = _internal_mutable_name();
6970  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
6971  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.ConstraintProto.name"));
6972  CHK_(ptr);
6973  } else goto handle_unusual;
6974  continue;
6975  // repeated int32 enforcement_literal = 2;
6976  case 2:
6977  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
6978  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_enforcement_literal(), ptr, ctx);
6979  CHK_(ptr);
6980  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
6981  _internal_add_enforcement_literal(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
6982  CHK_(ptr);
6983  } else goto handle_unusual;
6984  continue;
6985  // .operations_research.sat.BoolArgumentProto bool_or = 3;
6986  case 3:
6987  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
6988  ptr = ctx->ParseMessage(_internal_mutable_bool_or(), ptr);
6989  CHK_(ptr);
6990  } else goto handle_unusual;
6991  continue;
6992  // .operations_research.sat.BoolArgumentProto bool_and = 4;
6993  case 4:
6994  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
6995  ptr = ctx->ParseMessage(_internal_mutable_bool_and(), ptr);
6996  CHK_(ptr);
6997  } else goto handle_unusual;
6998  continue;
6999  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7000  case 5:
7001  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7002  ptr = ctx->ParseMessage(_internal_mutable_bool_xor(), ptr);
7003  CHK_(ptr);
7004  } else goto handle_unusual;
7005  continue;
7006  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7007  case 7:
7008  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
7009  ptr = ctx->ParseMessage(_internal_mutable_int_div(), ptr);
7010  CHK_(ptr);
7011  } else goto handle_unusual;
7012  continue;
7013  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7014  case 8:
7015  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
7016  ptr = ctx->ParseMessage(_internal_mutable_int_mod(), ptr);
7017  CHK_(ptr);
7018  } else goto handle_unusual;
7019  continue;
7020  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7021  case 9:
7022  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
7023  ptr = ctx->ParseMessage(_internal_mutable_int_max(), ptr);
7024  CHK_(ptr);
7025  } else goto handle_unusual;
7026  continue;
7027  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7028  case 10:
7029  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
7030  ptr = ctx->ParseMessage(_internal_mutable_int_min(), ptr);
7031  CHK_(ptr);
7032  } else goto handle_unusual;
7033  continue;
7034  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7035  case 11:
7036  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
7037  ptr = ctx->ParseMessage(_internal_mutable_int_prod(), ptr);
7038  CHK_(ptr);
7039  } else goto handle_unusual;
7040  continue;
7041  // .operations_research.sat.LinearConstraintProto linear = 12;
7042  case 12:
7043  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
7044  ptr = ctx->ParseMessage(_internal_mutable_linear(), ptr);
7045  CHK_(ptr);
7046  } else goto handle_unusual;
7047  continue;
7048  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7049  case 13:
7050  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
7051  ptr = ctx->ParseMessage(_internal_mutable_all_diff(), ptr);
7052  CHK_(ptr);
7053  } else goto handle_unusual;
7054  continue;
7055  // .operations_research.sat.ElementConstraintProto element = 14;
7056  case 14:
7057  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
7058  ptr = ctx->ParseMessage(_internal_mutable_element(), ptr);
7059  CHK_(ptr);
7060  } else goto handle_unusual;
7061  continue;
7062  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7063  case 15:
7064  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
7065  ptr = ctx->ParseMessage(_internal_mutable_circuit(), ptr);
7066  CHK_(ptr);
7067  } else goto handle_unusual;
7068  continue;
7069  // .operations_research.sat.TableConstraintProto table = 16;
7070  case 16:
7071  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
7072  ptr = ctx->ParseMessage(_internal_mutable_table(), ptr);
7073  CHK_(ptr);
7074  } else goto handle_unusual;
7075  continue;
7076  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7077  case 17:
7078  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
7079  ptr = ctx->ParseMessage(_internal_mutable_automaton(), ptr);
7080  CHK_(ptr);
7081  } else goto handle_unusual;
7082  continue;
7083  // .operations_research.sat.InverseConstraintProto inverse = 18;
7084  case 18:
7085  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
7086  ptr = ctx->ParseMessage(_internal_mutable_inverse(), ptr);
7087  CHK_(ptr);
7088  } else goto handle_unusual;
7089  continue;
7090  // .operations_research.sat.IntervalConstraintProto interval = 19;
7091  case 19:
7092  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
7093  ptr = ctx->ParseMessage(_internal_mutable_interval(), ptr);
7094  CHK_(ptr);
7095  } else goto handle_unusual;
7096  continue;
7097  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7098  case 20:
7099  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
7100  ptr = ctx->ParseMessage(_internal_mutable_no_overlap(), ptr);
7101  CHK_(ptr);
7102  } else goto handle_unusual;
7103  continue;
7104  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7105  case 21:
7106  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
7107  ptr = ctx->ParseMessage(_internal_mutable_no_overlap_2d(), ptr);
7108  CHK_(ptr);
7109  } else goto handle_unusual;
7110  continue;
7111  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7112  case 22:
7113  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
7114  ptr = ctx->ParseMessage(_internal_mutable_cumulative(), ptr);
7115  CHK_(ptr);
7116  } else goto handle_unusual;
7117  continue;
7118  // .operations_research.sat.RoutesConstraintProto routes = 23;
7119  case 23:
7120  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
7121  ptr = ctx->ParseMessage(_internal_mutable_routes(), ptr);
7122  CHK_(ptr);
7123  } else goto handle_unusual;
7124  continue;
7125  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7126  case 24:
7127  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
7128  ptr = ctx->ParseMessage(_internal_mutable_reservoir(), ptr);
7129  CHK_(ptr);
7130  } else goto handle_unusual;
7131  continue;
7132  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7133  case 26:
7134  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
7135  ptr = ctx->ParseMessage(_internal_mutable_at_most_one(), ptr);
7136  CHK_(ptr);
7137  } else goto handle_unusual;
7138  continue;
7139  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7140  case 27:
7141  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
7142  ptr = ctx->ParseMessage(_internal_mutable_lin_max(), ptr);
7143  CHK_(ptr);
7144  } else goto handle_unusual;
7145  continue;
7146  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7147  case 28:
7148  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
7149  ptr = ctx->ParseMessage(_internal_mutable_lin_min(), ptr);
7150  CHK_(ptr);
7151  } else goto handle_unusual;
7152  continue;
7153  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7154  case 29:
7155  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
7156  ptr = ctx->ParseMessage(_internal_mutable_exactly_one(), ptr);
7157  CHK_(ptr);
7158  } else goto handle_unusual;
7159  continue;
7160  default: {
7161  handle_unusual:
7162  if ((tag & 7) == 4 || tag == 0) {
7163  ctx->SetLastTag(tag);
7164  goto success;
7165  }
7166  ptr = UnknownFieldParse(tag,
7167  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7168  ptr, ctx);
7169  CHK_(ptr != nullptr);
7170  continue;
7171  }
7172  } // switch
7173  } // while
7174 success:
7175  return ptr;
7176 failure:
7177  ptr = nullptr;
7178  goto success;
7179 #undef CHK_
7180 }
7181 
7182 ::PROTOBUF_NAMESPACE_ID::uint8* ConstraintProto::_InternalSerialize(
7183  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7184  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ConstraintProto)
7185  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7186  (void) cached_has_bits;
7187 
7188  // string name = 1;
7189  if (this->name().size() > 0) {
7190  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
7191  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
7192  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
7193  "operations_research.sat.ConstraintProto.name");
7194  target = stream->WriteStringMaybeAliased(
7195  1, this->_internal_name(), target);
7196  }
7197 
7198  // repeated int32 enforcement_literal = 2;
7199  {
7200  int byte_size = _enforcement_literal_cached_byte_size_.load(std::memory_order_relaxed);
7201  if (byte_size > 0) {
7202  target = stream->WriteInt32Packed(
7203  2, _internal_enforcement_literal(), byte_size, target);
7204  }
7205  }
7206 
7207  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7208  if (_internal_has_bool_or()) {
7209  target = stream->EnsureSpace(target);
7210  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7211  InternalWriteMessage(
7212  3, _Internal::bool_or(this), target, stream);
7213  }
7214 
7215  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7216  if (_internal_has_bool_and()) {
7217  target = stream->EnsureSpace(target);
7218  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7219  InternalWriteMessage(
7220  4, _Internal::bool_and(this), target, stream);
7221  }
7222 
7223  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7224  if (_internal_has_bool_xor()) {
7225  target = stream->EnsureSpace(target);
7226  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7227  InternalWriteMessage(
7228  5, _Internal::bool_xor(this), target, stream);
7229  }
7230 
7231  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7232  if (_internal_has_int_div()) {
7233  target = stream->EnsureSpace(target);
7234  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7235  InternalWriteMessage(
7236  7, _Internal::int_div(this), target, stream);
7237  }
7238 
7239  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7240  if (_internal_has_int_mod()) {
7241  target = stream->EnsureSpace(target);
7242  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7243  InternalWriteMessage(
7244  8, _Internal::int_mod(this), target, stream);
7245  }
7246 
7247  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7248  if (_internal_has_int_max()) {
7249  target = stream->EnsureSpace(target);
7250  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7251  InternalWriteMessage(
7252  9, _Internal::int_max(this), target, stream);
7253  }
7254 
7255  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7256  if (_internal_has_int_min()) {
7257  target = stream->EnsureSpace(target);
7258  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7259  InternalWriteMessage(
7260  10, _Internal::int_min(this), target, stream);
7261  }
7262 
7263  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7264  if (_internal_has_int_prod()) {
7265  target = stream->EnsureSpace(target);
7266  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7267  InternalWriteMessage(
7268  11, _Internal::int_prod(this), target, stream);
7269  }
7270 
7271  // .operations_research.sat.LinearConstraintProto linear = 12;
7272  if (_internal_has_linear()) {
7273  target = stream->EnsureSpace(target);
7274  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7275  InternalWriteMessage(
7276  12, _Internal::linear(this), target, stream);
7277  }
7278 
7279  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7280  if (_internal_has_all_diff()) {
7281  target = stream->EnsureSpace(target);
7282  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7283  InternalWriteMessage(
7284  13, _Internal::all_diff(this), target, stream);
7285  }
7286 
7287  // .operations_research.sat.ElementConstraintProto element = 14;
7288  if (_internal_has_element()) {
7289  target = stream->EnsureSpace(target);
7290  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7291  InternalWriteMessage(
7292  14, _Internal::element(this), target, stream);
7293  }
7294 
7295  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7296  if (_internal_has_circuit()) {
7297  target = stream->EnsureSpace(target);
7298  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7299  InternalWriteMessage(
7300  15, _Internal::circuit(this), target, stream);
7301  }
7302 
7303  // .operations_research.sat.TableConstraintProto table = 16;
7304  if (_internal_has_table()) {
7305  target = stream->EnsureSpace(target);
7306  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7307  InternalWriteMessage(
7308  16, _Internal::table(this), target, stream);
7309  }
7310 
7311  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7312  if (_internal_has_automaton()) {
7313  target = stream->EnsureSpace(target);
7314  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7315  InternalWriteMessage(
7316  17, _Internal::automaton(this), target, stream);
7317  }
7318 
7319  // .operations_research.sat.InverseConstraintProto inverse = 18;
7320  if (_internal_has_inverse()) {
7321  target = stream->EnsureSpace(target);
7322  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7323  InternalWriteMessage(
7324  18, _Internal::inverse(this), target, stream);
7325  }
7326 
7327  // .operations_research.sat.IntervalConstraintProto interval = 19;
7328  if (_internal_has_interval()) {
7329  target = stream->EnsureSpace(target);
7330  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7331  InternalWriteMessage(
7332  19, _Internal::interval(this), target, stream);
7333  }
7334 
7335  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7336  if (_internal_has_no_overlap()) {
7337  target = stream->EnsureSpace(target);
7338  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7339  InternalWriteMessage(
7340  20, _Internal::no_overlap(this), target, stream);
7341  }
7342 
7343  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7344  if (_internal_has_no_overlap_2d()) {
7345  target = stream->EnsureSpace(target);
7346  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7347  InternalWriteMessage(
7348  21, _Internal::no_overlap_2d(this), target, stream);
7349  }
7350 
7351  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7352  if (_internal_has_cumulative()) {
7353  target = stream->EnsureSpace(target);
7354  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7355  InternalWriteMessage(
7356  22, _Internal::cumulative(this), target, stream);
7357  }
7358 
7359  // .operations_research.sat.RoutesConstraintProto routes = 23;
7360  if (_internal_has_routes()) {
7361  target = stream->EnsureSpace(target);
7362  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7363  InternalWriteMessage(
7364  23, _Internal::routes(this), target, stream);
7365  }
7366 
7367  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7368  if (_internal_has_reservoir()) {
7369  target = stream->EnsureSpace(target);
7370  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7371  InternalWriteMessage(
7372  24, _Internal::reservoir(this), target, stream);
7373  }
7374 
7375  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7376  if (_internal_has_at_most_one()) {
7377  target = stream->EnsureSpace(target);
7378  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7379  InternalWriteMessage(
7380  26, _Internal::at_most_one(this), target, stream);
7381  }
7382 
7383  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7384  if (_internal_has_lin_max()) {
7385  target = stream->EnsureSpace(target);
7386  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7387  InternalWriteMessage(
7388  27, _Internal::lin_max(this), target, stream);
7389  }
7390 
7391  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7392  if (_internal_has_lin_min()) {
7393  target = stream->EnsureSpace(target);
7394  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7395  InternalWriteMessage(
7396  28, _Internal::lin_min(this), target, stream);
7397  }
7398 
7399  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7400  if (_internal_has_exactly_one()) {
7401  target = stream->EnsureSpace(target);
7402  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7403  InternalWriteMessage(
7404  29, _Internal::exactly_one(this), target, stream);
7405  }
7406 
7407  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7408  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7409  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7410  }
7411  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ConstraintProto)
7412  return target;
7413 }
7414 
7415 size_t ConstraintProto::ByteSizeLong() const {
7416 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ConstraintProto)
7417  size_t total_size = 0;
7418 
7419  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7420  // Prevent compiler warnings about cached_has_bits being unused
7421  (void) cached_has_bits;
7422 
7423  // repeated int32 enforcement_literal = 2;
7424  {
7425  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7426  Int32Size(this->enforcement_literal_);
7427  if (data_size > 0) {
7428  total_size += 1 +
7429  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7430  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7431  }
7432  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7433  _enforcement_literal_cached_byte_size_.store(cached_size,
7434  std::memory_order_relaxed);
7435  total_size += data_size;
7436  }
7437 
7438  // string name = 1;
7439  if (this->name().size() > 0) {
7440  total_size += 1 +
7441  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
7442  this->_internal_name());
7443  }
7444 
7445  switch (constraint_case()) {
7446  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7447  case kBoolOr: {
7448  total_size += 1 +
7449  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7450  *constraint_.bool_or_);
7451  break;
7452  }
7453  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7454  case kBoolAnd: {
7455  total_size += 1 +
7456  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7457  *constraint_.bool_and_);
7458  break;
7459  }
7460  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7461  case kAtMostOne: {
7462  total_size += 2 +
7463  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7464  *constraint_.at_most_one_);
7465  break;
7466  }
7467  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7468  case kExactlyOne: {
7469  total_size += 2 +
7470  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7471  *constraint_.exactly_one_);
7472  break;
7473  }
7474  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7475  case kBoolXor: {
7476  total_size += 1 +
7477  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7478  *constraint_.bool_xor_);
7479  break;
7480  }
7481  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7482  case kIntDiv: {
7483  total_size += 1 +
7484  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7485  *constraint_.int_div_);
7486  break;
7487  }
7488  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7489  case kIntMod: {
7490  total_size += 1 +
7491  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7492  *constraint_.int_mod_);
7493  break;
7494  }
7495  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7496  case kIntMax: {
7497  total_size += 1 +
7498  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7499  *constraint_.int_max_);
7500  break;
7501  }
7502  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7503  case kLinMax: {
7504  total_size += 2 +
7505  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7506  *constraint_.lin_max_);
7507  break;
7508  }
7509  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7510  case kIntMin: {
7511  total_size += 1 +
7512  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7513  *constraint_.int_min_);
7514  break;
7515  }
7516  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7517  case kLinMin: {
7518  total_size += 2 +
7519  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7520  *constraint_.lin_min_);
7521  break;
7522  }
7523  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7524  case kIntProd: {
7525  total_size += 1 +
7526  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7527  *constraint_.int_prod_);
7528  break;
7529  }
7530  // .operations_research.sat.LinearConstraintProto linear = 12;
7531  case kLinear: {
7532  total_size += 1 +
7533  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7534  *constraint_.linear_);
7535  break;
7536  }
7537  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7538  case kAllDiff: {
7539  total_size += 1 +
7540  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7541  *constraint_.all_diff_);
7542  break;
7543  }
7544  // .operations_research.sat.ElementConstraintProto element = 14;
7545  case kElement: {
7546  total_size += 1 +
7547  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7548  *constraint_.element_);
7549  break;
7550  }
7551  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7552  case kCircuit: {
7553  total_size += 1 +
7554  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7555  *constraint_.circuit_);
7556  break;
7557  }
7558  // .operations_research.sat.RoutesConstraintProto routes = 23;
7559  case kRoutes: {
7560  total_size += 2 +
7561  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7562  *constraint_.routes_);
7563  break;
7564  }
7565  // .operations_research.sat.TableConstraintProto table = 16;
7566  case kTable: {
7567  total_size += 2 +
7568  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7569  *constraint_.table_);
7570  break;
7571  }
7572  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7573  case kAutomaton: {
7574  total_size += 2 +
7575  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7576  *constraint_.automaton_);
7577  break;
7578  }
7579  // .operations_research.sat.InverseConstraintProto inverse = 18;
7580  case kInverse: {
7581  total_size += 2 +
7582  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7583  *constraint_.inverse_);
7584  break;
7585  }
7586  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7587  case kReservoir: {
7588  total_size += 2 +
7589  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7590  *constraint_.reservoir_);
7591  break;
7592  }
7593  // .operations_research.sat.IntervalConstraintProto interval = 19;
7594  case kInterval: {
7595  total_size += 2 +
7596  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7597  *constraint_.interval_);
7598  break;
7599  }
7600  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7601  case kNoOverlap: {
7602  total_size += 2 +
7603  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7604  *constraint_.no_overlap_);
7605  break;
7606  }
7607  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7608  case kNoOverlap2D: {
7609  total_size += 2 +
7610  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7611  *constraint_.no_overlap_2d_);
7612  break;
7613  }
7614  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7615  case kCumulative: {
7616  total_size += 2 +
7617  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7618  *constraint_.cumulative_);
7619  break;
7620  }
7621  case CONSTRAINT_NOT_SET: {
7622  break;
7623  }
7624  }
7625  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7626  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7627  _internal_metadata_, total_size, &_cached_size_);
7628  }
7629  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7630  SetCachedSize(cached_size);
7631  return total_size;
7632 }
7633 
7634 void ConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7635 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ConstraintProto)
7636  GOOGLE_DCHECK_NE(&from, this);
7637  const ConstraintProto* source =
7638  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ConstraintProto>(
7639  &from);
7640  if (source == nullptr) {
7641  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ConstraintProto)
7642  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
7643  } else {
7644  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ConstraintProto)
7645  MergeFrom(*source);
7646  }
7647 }
7648 
7649 void ConstraintProto::MergeFrom(const ConstraintProto& from) {
7650 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ConstraintProto)
7651  GOOGLE_DCHECK_NE(&from, this);
7652  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7653  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7654  (void) cached_has_bits;
7655 
7656  enforcement_literal_.MergeFrom(from.enforcement_literal_);
7657  if (from.name().size() > 0) {
7658  _internal_set_name(from._internal_name());
7659  }
7660  switch (from.constraint_case()) {
7661  case kBoolOr: {
7662  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
7663  break;
7664  }
7665  case kBoolAnd: {
7666  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
7667  break;
7668  }
7669  case kAtMostOne: {
7670  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
7671  break;
7672  }
7673  case kExactlyOne: {
7674  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
7675  break;
7676  }
7677  case kBoolXor: {
7678  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
7679  break;
7680  }
7681  case kIntDiv: {
7682  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
7683  break;
7684  }
7685  case kIntMod: {
7686  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
7687  break;
7688  }
7689  case kIntMax: {
7690  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
7691  break;
7692  }
7693  case kLinMax: {
7694  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
7695  break;
7696  }
7697  case kIntMin: {
7698  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
7699  break;
7700  }
7701  case kLinMin: {
7702  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
7703  break;
7704  }
7705  case kIntProd: {
7706  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
7707  break;
7708  }
7709  case kLinear: {
7710  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
7711  break;
7712  }
7713  case kAllDiff: {
7714  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
7715  break;
7716  }
7717  case kElement: {
7718  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
7719  break;
7720  }
7721  case kCircuit: {
7722  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
7723  break;
7724  }
7725  case kRoutes: {
7726  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
7727  break;
7728  }
7729  case kTable: {
7730  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
7731  break;
7732  }
7733  case kAutomaton: {
7734  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
7735  break;
7736  }
7737  case kInverse: {
7738  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
7739  break;
7740  }
7741  case kReservoir: {
7742  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
7743  break;
7744  }
7745  case kInterval: {
7746  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
7747  break;
7748  }
7749  case kNoOverlap: {
7750  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
7751  break;
7752  }
7753  case kNoOverlap2D: {
7754  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
7755  break;
7756  }
7757  case kCumulative: {
7758  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
7759  break;
7760  }
7761  case CONSTRAINT_NOT_SET: {
7762  break;
7763  }
7764  }
7765 }
7766 
7767 void ConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7768 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ConstraintProto)
7769  if (&from == this) return;
7770  Clear();
7771  MergeFrom(from);
7772 }
7773 
7774 void ConstraintProto::CopyFrom(const ConstraintProto& from) {
7775 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ConstraintProto)
7776  if (&from == this) return;
7777  Clear();
7778  MergeFrom(from);
7779 }
7780 
7781 bool ConstraintProto::IsInitialized() const {
7782  return true;
7783 }
7784 
7785 void ConstraintProto::InternalSwap(ConstraintProto* other) {
7786  using std::swap;
7787  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
7788  enforcement_literal_.InternalSwap(&other->enforcement_literal_);
7789  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
7790  swap(constraint_, other->constraint_);
7791  swap(_oneof_case_[0], other->_oneof_case_[0]);
7792 }
7793 
7794 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintProto::GetMetadata() const {
7795  return GetMetadataStatic();
7796 }
7797 
7798 
7799 // ===================================================================
7800 
7802  public:
7803 };
7804 
7805 CpObjectiveProto::CpObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
7806  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
7807  vars_(arena),
7808  coeffs_(arena),
7809  domain_(arena) {
7810  SharedCtor();
7811  RegisterArenaDtor(arena);
7812  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpObjectiveProto)
7813 }
7814 CpObjectiveProto::CpObjectiveProto(const CpObjectiveProto& from)
7815  : ::PROTOBUF_NAMESPACE_ID::Message(),
7816  vars_(from.vars_),
7817  coeffs_(from.coeffs_),
7818  domain_(from.domain_) {
7819  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7820  ::memcpy(&offset_, &from.offset_,
7821  static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7822  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7823  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpObjectiveProto)
7824 }
7825 
7826 void CpObjectiveProto::SharedCtor() {
7827  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7828  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7829  0, static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7830  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7831 }
7832 
7833 CpObjectiveProto::~CpObjectiveProto() {
7834  // @@protoc_insertion_point(destructor:operations_research.sat.CpObjectiveProto)
7835  SharedDtor();
7836  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7837 }
7838 
7839 void CpObjectiveProto::SharedDtor() {
7840  GOOGLE_DCHECK(GetArena() == nullptr);
7841 }
7842 
7843 void CpObjectiveProto::ArenaDtor(void* object) {
7844  CpObjectiveProto* _this = reinterpret_cast< CpObjectiveProto* >(object);
7845  (void)_this;
7846 }
7847 void CpObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7848 }
7849 void CpObjectiveProto::SetCachedSize(int size) const {
7850  _cached_size_.Set(size);
7851 }
7852 const CpObjectiveProto& CpObjectiveProto::default_instance() {
7853  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
7854  return *internal_default_instance();
7855 }
7856 
7857 
7858 void CpObjectiveProto::Clear() {
7859 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpObjectiveProto)
7860  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7861  // Prevent compiler warnings about cached_has_bits being unused
7862  (void) cached_has_bits;
7863 
7864  vars_.Clear();
7865  coeffs_.Clear();
7866  domain_.Clear();
7867  ::memset(&offset_, 0, static_cast<size_t>(
7868  reinterpret_cast<char*>(&scaling_factor_) -
7869  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7870  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7871 }
7872 
7873 const char* CpObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7874 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7875  while (!ctx->Done(&ptr)) {
7877  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7878  CHK_(ptr);
7879  switch (tag >> 3) {
7880  // repeated int32 vars = 1;
7881  case 1:
7882  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
7883  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7884  CHK_(ptr);
7885  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
7886  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7887  CHK_(ptr);
7888  } else goto handle_unusual;
7889  continue;
7890  // double offset = 2;
7891  case 2:
7892  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
7893  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7894  ptr += sizeof(double);
7895  } else goto handle_unusual;
7896  continue;
7897  // double scaling_factor = 3;
7898  case 3:
7899  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
7900  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7901  ptr += sizeof(double);
7902  } else goto handle_unusual;
7903  continue;
7904  // repeated int64 coeffs = 4;
7905  case 4:
7906  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
7907  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
7908  CHK_(ptr);
7909  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
7910  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7911  CHK_(ptr);
7912  } else goto handle_unusual;
7913  continue;
7914  // repeated int64 domain = 5;
7915  case 5:
7916  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7917  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
7918  CHK_(ptr);
7919  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
7920  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7921  CHK_(ptr);
7922  } else goto handle_unusual;
7923  continue;
7924  default: {
7925  handle_unusual:
7926  if ((tag & 7) == 4 || tag == 0) {
7927  ctx->SetLastTag(tag);
7928  goto success;
7929  }
7930  ptr = UnknownFieldParse(tag,
7931  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7932  ptr, ctx);
7933  CHK_(ptr != nullptr);
7934  continue;
7935  }
7936  } // switch
7937  } // while
7938 success:
7939  return ptr;
7940 failure:
7941  ptr = nullptr;
7942  goto success;
7943 #undef CHK_
7944 }
7945 
7946 ::PROTOBUF_NAMESPACE_ID::uint8* CpObjectiveProto::_InternalSerialize(
7947  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7948  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpObjectiveProto)
7949  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7950  (void) cached_has_bits;
7951 
7952  // repeated int32 vars = 1;
7953  {
7954  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
7955  if (byte_size > 0) {
7956  target = stream->WriteInt32Packed(
7957  1, _internal_vars(), byte_size, target);
7958  }
7959  }
7960 
7961  // double offset = 2;
7962  if (!(this->offset() <= 0 && this->offset() >= 0)) {
7963  target = stream->EnsureSpace(target);
7964  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_offset(), target);
7965  }
7966 
7967  // double scaling_factor = 3;
7968  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
7969  target = stream->EnsureSpace(target);
7970  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_scaling_factor(), target);
7971  }
7972 
7973  // repeated int64 coeffs = 4;
7974  {
7975  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
7976  if (byte_size > 0) {
7977  target = stream->WriteInt64Packed(
7978  4, _internal_coeffs(), byte_size, target);
7979  }
7980  }
7981 
7982  // repeated int64 domain = 5;
7983  {
7984  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
7985  if (byte_size > 0) {
7986  target = stream->WriteInt64Packed(
7987  5, _internal_domain(), byte_size, target);
7988  }
7989  }
7990 
7991  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7992  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7993  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7994  }
7995  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpObjectiveProto)
7996  return target;
7997 }
7998 
7999 size_t CpObjectiveProto::ByteSizeLong() const {
8000 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpObjectiveProto)
8001  size_t total_size = 0;
8002 
8003  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8004  // Prevent compiler warnings about cached_has_bits being unused
8005  (void) cached_has_bits;
8006 
8007  // repeated int32 vars = 1;
8008  {
8009  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8010  Int32Size(this->vars_);
8011  if (data_size > 0) {
8012  total_size += 1 +
8013  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8014  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8015  }
8016  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8017  _vars_cached_byte_size_.store(cached_size,
8018  std::memory_order_relaxed);
8019  total_size += data_size;
8020  }
8021 
8022  // repeated int64 coeffs = 4;
8023  {
8024  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8025  Int64Size(this->coeffs_);
8026  if (data_size > 0) {
8027  total_size += 1 +
8028  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8029  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8030  }
8031  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8032  _coeffs_cached_byte_size_.store(cached_size,
8033  std::memory_order_relaxed);
8034  total_size += data_size;
8035  }
8036 
8037  // repeated int64 domain = 5;
8038  {
8039  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8040  Int64Size(this->domain_);
8041  if (data_size > 0) {
8042  total_size += 1 +
8043  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8044  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8045  }
8046  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8047  _domain_cached_byte_size_.store(cached_size,
8048  std::memory_order_relaxed);
8049  total_size += data_size;
8050  }
8051 
8052  // double offset = 2;
8053  if (!(this->offset() <= 0 && this->offset() >= 0)) {
8054  total_size += 1 + 8;
8055  }
8056 
8057  // double scaling_factor = 3;
8058  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
8059  total_size += 1 + 8;
8060  }
8061 
8062  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8063  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8064  _internal_metadata_, total_size, &_cached_size_);
8065  }
8066  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8067  SetCachedSize(cached_size);
8068  return total_size;
8069 }
8070 
8071 void CpObjectiveProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8072 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpObjectiveProto)
8073  GOOGLE_DCHECK_NE(&from, this);
8074  const CpObjectiveProto* source =
8075  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpObjectiveProto>(
8076  &from);
8077  if (source == nullptr) {
8078  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpObjectiveProto)
8079  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8080  } else {
8081  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpObjectiveProto)
8082  MergeFrom(*source);
8083  }
8084 }
8085 
8086 void CpObjectiveProto::MergeFrom(const CpObjectiveProto& from) {
8087 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpObjectiveProto)
8088  GOOGLE_DCHECK_NE(&from, this);
8089  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8090  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8091  (void) cached_has_bits;
8092 
8093  vars_.MergeFrom(from.vars_);
8094  coeffs_.MergeFrom(from.coeffs_);
8095  domain_.MergeFrom(from.domain_);
8096  if (!(from.offset() <= 0 && from.offset() >= 0)) {
8097  _internal_set_offset(from._internal_offset());
8098  }
8099  if (!(from.scaling_factor() <= 0 && from.scaling_factor() >= 0)) {
8100  _internal_set_scaling_factor(from._internal_scaling_factor());
8101  }
8102 }
8103 
8104 void CpObjectiveProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8105 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpObjectiveProto)
8106  if (&from == this) return;
8107  Clear();
8108  MergeFrom(from);
8109 }
8110 
8111 void CpObjectiveProto::CopyFrom(const CpObjectiveProto& from) {
8112 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpObjectiveProto)
8113  if (&from == this) return;
8114  Clear();
8115  MergeFrom(from);
8116 }
8117 
8118 bool CpObjectiveProto::IsInitialized() const {
8119  return true;
8120 }
8121 
8122 void CpObjectiveProto::InternalSwap(CpObjectiveProto* other) {
8123  using std::swap;
8124  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8125  vars_.InternalSwap(&other->vars_);
8126  coeffs_.InternalSwap(&other->coeffs_);
8127  domain_.InternalSwap(&other->domain_);
8128  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8129  PROTOBUF_FIELD_OFFSET(CpObjectiveProto, scaling_factor_)
8130  + sizeof(CpObjectiveProto::scaling_factor_)
8131  - PROTOBUF_FIELD_OFFSET(CpObjectiveProto, offset_)>(
8132  reinterpret_cast<char*>(&offset_),
8133  reinterpret_cast<char*>(&other->offset_));
8134 }
8135 
8136 ::PROTOBUF_NAMESPACE_ID::Metadata CpObjectiveProto::GetMetadata() const {
8137  return GetMetadataStatic();
8138 }
8139 
8140 
8141 // ===================================================================
8142 
8144  public:
8145 };
8146 
8147 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8148  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
8149  SharedCtor();
8150  RegisterArenaDtor(arena);
8151  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8152 }
8153 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(const DecisionStrategyProto_AffineTransformation& from)
8154  : ::PROTOBUF_NAMESPACE_ID::Message() {
8155  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8156  ::memcpy(&offset_, &from.offset_,
8157  static_cast<size_t>(reinterpret_cast<char*>(&var_) -
8158  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8159  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8160 }
8161 
8162 void DecisionStrategyProto_AffineTransformation::SharedCtor() {
8163  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8164  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
8165  0, static_cast<size_t>(reinterpret_cast<char*>(&var_) -
8166  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8167 }
8168 
8169 DecisionStrategyProto_AffineTransformation::~DecisionStrategyProto_AffineTransformation() {
8170  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8171  SharedDtor();
8172  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8173 }
8174 
8175 void DecisionStrategyProto_AffineTransformation::SharedDtor() {
8176  GOOGLE_DCHECK(GetArena() == nullptr);
8177 }
8178 
8179 void DecisionStrategyProto_AffineTransformation::ArenaDtor(void* object) {
8180  DecisionStrategyProto_AffineTransformation* _this = reinterpret_cast< DecisionStrategyProto_AffineTransformation* >(object);
8181  (void)_this;
8182 }
8183 void DecisionStrategyProto_AffineTransformation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8184 }
8185 void DecisionStrategyProto_AffineTransformation::SetCachedSize(int size) const {
8186  _cached_size_.Set(size);
8187 }
8188 const DecisionStrategyProto_AffineTransformation& DecisionStrategyProto_AffineTransformation::default_instance() {
8189  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8190  return *internal_default_instance();
8191 }
8192 
8193 
8194 void DecisionStrategyProto_AffineTransformation::Clear() {
8195 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8196  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8197  // Prevent compiler warnings about cached_has_bits being unused
8198  (void) cached_has_bits;
8199 
8200  ::memset(&offset_, 0, static_cast<size_t>(
8201  reinterpret_cast<char*>(&var_) -
8202  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8203  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8204 }
8205 
8206 const char* DecisionStrategyProto_AffineTransformation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8207 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8208  while (!ctx->Done(&ptr)) {
8210  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8211  CHK_(ptr);
8212  switch (tag >> 3) {
8213  // int32 var = 1;
8214  case 1:
8215  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
8216  var_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8217  CHK_(ptr);
8218  } else goto handle_unusual;
8219  continue;
8220  // int64 offset = 2;
8221  case 2:
8222  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8223  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8224  CHK_(ptr);
8225  } else goto handle_unusual;
8226  continue;
8227  // int64 positive_coeff = 3;
8228  case 3:
8229  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8230  positive_coeff_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8231  CHK_(ptr);
8232  } else goto handle_unusual;
8233  continue;
8234  default: {
8235  handle_unusual:
8236  if ((tag & 7) == 4 || tag == 0) {
8237  ctx->SetLastTag(tag);
8238  goto success;
8239  }
8240  ptr = UnknownFieldParse(tag,
8241  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8242  ptr, ctx);
8243  CHK_(ptr != nullptr);
8244  continue;
8245  }
8246  } // switch
8247  } // while
8248 success:
8249  return ptr;
8250 failure:
8251  ptr = nullptr;
8252  goto success;
8253 #undef CHK_
8254 }
8255 
8256 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto_AffineTransformation::_InternalSerialize(
8257  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8258  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8259  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8260  (void) cached_has_bits;
8261 
8262  // int32 var = 1;
8263  if (this->var() != 0) {
8264  target = stream->EnsureSpace(target);
8265  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_var(), target);
8266  }
8267 
8268  // int64 offset = 2;
8269  if (this->offset() != 0) {
8270  target = stream->EnsureSpace(target);
8271  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_offset(), target);
8272  }
8273 
8274  // int64 positive_coeff = 3;
8275  if (this->positive_coeff() != 0) {
8276  target = stream->EnsureSpace(target);
8277  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_positive_coeff(), target);
8278  }
8279 
8280  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8281  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8282  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8283  }
8284  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8285  return target;
8286 }
8287 
8288 size_t DecisionStrategyProto_AffineTransformation::ByteSizeLong() const {
8289 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8290  size_t total_size = 0;
8291 
8292  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8293  // Prevent compiler warnings about cached_has_bits being unused
8294  (void) cached_has_bits;
8295 
8296  // int64 offset = 2;
8297  if (this->offset() != 0) {
8298  total_size += 1 +
8299  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8300  this->_internal_offset());
8301  }
8302 
8303  // int64 positive_coeff = 3;
8304  if (this->positive_coeff() != 0) {
8305  total_size += 1 +
8306  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8307  this->_internal_positive_coeff());
8308  }
8309 
8310  // int32 var = 1;
8311  if (this->var() != 0) {
8312  total_size += 1 +
8313  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8314  this->_internal_var());
8315  }
8316 
8317  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8318  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8319  _internal_metadata_, total_size, &_cached_size_);
8320  }
8321  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8322  SetCachedSize(cached_size);
8323  return total_size;
8324 }
8325 
8326 void DecisionStrategyProto_AffineTransformation::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8327 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8328  GOOGLE_DCHECK_NE(&from, this);
8329  const DecisionStrategyProto_AffineTransformation* source =
8330  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto_AffineTransformation>(
8331  &from);
8332  if (source == nullptr) {
8333  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8334  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8335  } else {
8336  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8337  MergeFrom(*source);
8338  }
8339 }
8340 
8341 void DecisionStrategyProto_AffineTransformation::MergeFrom(const DecisionStrategyProto_AffineTransformation& from) {
8342 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8343  GOOGLE_DCHECK_NE(&from, this);
8344  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8345  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8346  (void) cached_has_bits;
8347 
8348  if (from.offset() != 0) {
8349  _internal_set_offset(from._internal_offset());
8350  }
8351  if (from.positive_coeff() != 0) {
8352  _internal_set_positive_coeff(from._internal_positive_coeff());
8353  }
8354  if (from.var() != 0) {
8355  _internal_set_var(from._internal_var());
8356  }
8357 }
8358 
8359 void DecisionStrategyProto_AffineTransformation::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8360 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8361  if (&from == this) return;
8362  Clear();
8363  MergeFrom(from);
8364 }
8365 
8366 void DecisionStrategyProto_AffineTransformation::CopyFrom(const DecisionStrategyProto_AffineTransformation& from) {
8367 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8368  if (&from == this) return;
8369  Clear();
8370  MergeFrom(from);
8371 }
8372 
8373 bool DecisionStrategyProto_AffineTransformation::IsInitialized() const {
8374  return true;
8375 }
8376 
8377 void DecisionStrategyProto_AffineTransformation::InternalSwap(DecisionStrategyProto_AffineTransformation* other) {
8378  using std::swap;
8379  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8380  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8381  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, var_)
8382  + sizeof(DecisionStrategyProto_AffineTransformation::var_)
8383  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, offset_)>(
8384  reinterpret_cast<char*>(&offset_),
8385  reinterpret_cast<char*>(&other->offset_));
8386 }
8387 
8388 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto_AffineTransformation::GetMetadata() const {
8389  return GetMetadataStatic();
8390 }
8391 
8392 
8393 // ===================================================================
8394 
8396  public:
8397 };
8398 
8399 DecisionStrategyProto::DecisionStrategyProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8400  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8401  variables_(arena),
8402  transformations_(arena) {
8403  SharedCtor();
8404  RegisterArenaDtor(arena);
8405  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto)
8406 }
8407 DecisionStrategyProto::DecisionStrategyProto(const DecisionStrategyProto& from)
8408  : ::PROTOBUF_NAMESPACE_ID::Message(),
8409  variables_(from.variables_),
8410  transformations_(from.transformations_) {
8411  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8412  ::memcpy(&variable_selection_strategy_, &from.variable_selection_strategy_,
8413  static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8414  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8415  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto)
8416 }
8417 
8418 void DecisionStrategyProto::SharedCtor() {
8419  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8420  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8421  reinterpret_cast<char*>(&variable_selection_strategy_) - reinterpret_cast<char*>(this)),
8422  0, static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8423  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8424 }
8425 
8426 DecisionStrategyProto::~DecisionStrategyProto() {
8427  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto)
8428  SharedDtor();
8429  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8430 }
8431 
8432 void DecisionStrategyProto::SharedDtor() {
8433  GOOGLE_DCHECK(GetArena() == nullptr);
8434 }
8435 
8436 void DecisionStrategyProto::ArenaDtor(void* object) {
8437  DecisionStrategyProto* _this = reinterpret_cast< DecisionStrategyProto* >(object);
8438  (void)_this;
8439 }
8440 void DecisionStrategyProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8441 }
8442 void DecisionStrategyProto::SetCachedSize(int size) const {
8443  _cached_size_.Set(size);
8444 }
8445 const DecisionStrategyProto& DecisionStrategyProto::default_instance() {
8446  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8447  return *internal_default_instance();
8448 }
8449 
8450 
8451 void DecisionStrategyProto::Clear() {
8452 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto)
8453  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8454  // Prevent compiler warnings about cached_has_bits being unused
8455  (void) cached_has_bits;
8456 
8457  variables_.Clear();
8458  transformations_.Clear();
8459  ::memset(&variable_selection_strategy_, 0, static_cast<size_t>(
8460  reinterpret_cast<char*>(&domain_reduction_strategy_) -
8461  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8462  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8463 }
8464 
8465 const char* DecisionStrategyProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8466 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8467  while (!ctx->Done(&ptr)) {
8469  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8470  CHK_(ptr);
8471  switch (tag >> 3) {
8472  // repeated int32 variables = 1;
8473  case 1:
8474  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8475  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_variables(), ptr, ctx);
8476  CHK_(ptr);
8477  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8478  _internal_add_variables(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8479  CHK_(ptr);
8480  } else goto handle_unusual;
8481  continue;
8482  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8483  case 2:
8484  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8485  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8486  CHK_(ptr);
8487  _internal_set_variable_selection_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_VariableSelectionStrategy>(val));
8488  } else goto handle_unusual;
8489  continue;
8490  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8491  case 3:
8492  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8493  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8494  CHK_(ptr);
8495  _internal_set_domain_reduction_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_DomainReductionStrategy>(val));
8496  } else goto handle_unusual;
8497  continue;
8498  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8499  case 4:
8500  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
8501  ptr -= 1;
8502  do {
8503  ptr += 1;
8504  ptr = ctx->ParseMessage(_internal_add_transformations(), ptr);
8505  CHK_(ptr);
8506  if (!ctx->DataAvailable(ptr)) break;
8507  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
8508  } else goto handle_unusual;
8509  continue;
8510  default: {
8511  handle_unusual:
8512  if ((tag & 7) == 4 || tag == 0) {
8513  ctx->SetLastTag(tag);
8514  goto success;
8515  }
8516  ptr = UnknownFieldParse(tag,
8517  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8518  ptr, ctx);
8519  CHK_(ptr != nullptr);
8520  continue;
8521  }
8522  } // switch
8523  } // while
8524 success:
8525  return ptr;
8526 failure:
8527  ptr = nullptr;
8528  goto success;
8529 #undef CHK_
8530 }
8531 
8532 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto::_InternalSerialize(
8533  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8534  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto)
8535  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8536  (void) cached_has_bits;
8537 
8538  // repeated int32 variables = 1;
8539  {
8540  int byte_size = _variables_cached_byte_size_.load(std::memory_order_relaxed);
8541  if (byte_size > 0) {
8542  target = stream->WriteInt32Packed(
8543  1, _internal_variables(), byte_size, target);
8544  }
8545  }
8546 
8547  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8548  if (this->variable_selection_strategy() != 0) {
8549  target = stream->EnsureSpace(target);
8550  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8551  2, this->_internal_variable_selection_strategy(), target);
8552  }
8553 
8554  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8555  if (this->domain_reduction_strategy() != 0) {
8556  target = stream->EnsureSpace(target);
8557  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8558  3, this->_internal_domain_reduction_strategy(), target);
8559  }
8560 
8561  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8562  for (unsigned int i = 0,
8563  n = static_cast<unsigned int>(this->_internal_transformations_size()); i < n; i++) {
8564  target = stream->EnsureSpace(target);
8565  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8566  InternalWriteMessage(4, this->_internal_transformations(i), target, stream);
8567  }
8568 
8569  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8570  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8571  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8572  }
8573  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto)
8574  return target;
8575 }
8576 
8577 size_t DecisionStrategyProto::ByteSizeLong() const {
8578 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto)
8579  size_t total_size = 0;
8580 
8581  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8582  // Prevent compiler warnings about cached_has_bits being unused
8583  (void) cached_has_bits;
8584 
8585  // repeated int32 variables = 1;
8586  {
8587  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8588  Int32Size(this->variables_);
8589  if (data_size > 0) {
8590  total_size += 1 +
8591  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8592  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8593  }
8594  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8595  _variables_cached_byte_size_.store(cached_size,
8596  std::memory_order_relaxed);
8597  total_size += data_size;
8598  }
8599 
8600  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8601  total_size += 1UL * this->_internal_transformations_size();
8602  for (const auto& msg : this->transformations_) {
8603  total_size +=
8604  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
8605  }
8606 
8607  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8608  if (this->variable_selection_strategy() != 0) {
8609  total_size += 1 +
8610  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_variable_selection_strategy());
8611  }
8612 
8613  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8614  if (this->domain_reduction_strategy() != 0) {
8615  total_size += 1 +
8616  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_domain_reduction_strategy());
8617  }
8618 
8619  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8620  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8621  _internal_metadata_, total_size, &_cached_size_);
8622  }
8623  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8624  SetCachedSize(cached_size);
8625  return total_size;
8626 }
8627 
8628 void DecisionStrategyProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8629 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto)
8630  GOOGLE_DCHECK_NE(&from, this);
8631  const DecisionStrategyProto* source =
8632  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto>(
8633  &from);
8634  if (source == nullptr) {
8635  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto)
8636  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8637  } else {
8638  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto)
8639  MergeFrom(*source);
8640  }
8641 }
8642 
8643 void DecisionStrategyProto::MergeFrom(const DecisionStrategyProto& from) {
8644 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto)
8645  GOOGLE_DCHECK_NE(&from, this);
8646  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8647  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8648  (void) cached_has_bits;
8649 
8650  variables_.MergeFrom(from.variables_);
8651  transformations_.MergeFrom(from.transformations_);
8652  if (from.variable_selection_strategy() != 0) {
8653  _internal_set_variable_selection_strategy(from._internal_variable_selection_strategy());
8654  }
8655  if (from.domain_reduction_strategy() != 0) {
8656  _internal_set_domain_reduction_strategy(from._internal_domain_reduction_strategy());
8657  }
8658 }
8659 
8660 void DecisionStrategyProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8661 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto)
8662  if (&from == this) return;
8663  Clear();
8664  MergeFrom(from);
8665 }
8666 
8667 void DecisionStrategyProto::CopyFrom(const DecisionStrategyProto& from) {
8668 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto)
8669  if (&from == this) return;
8670  Clear();
8671  MergeFrom(from);
8672 }
8673 
8674 bool DecisionStrategyProto::IsInitialized() const {
8675  return true;
8676 }
8677 
8678 void DecisionStrategyProto::InternalSwap(DecisionStrategyProto* other) {
8679  using std::swap;
8680  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8681  variables_.InternalSwap(&other->variables_);
8682  transformations_.InternalSwap(&other->transformations_);
8683  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8684  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, domain_reduction_strategy_)
8685  + sizeof(DecisionStrategyProto::domain_reduction_strategy_)
8686  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, variable_selection_strategy_)>(
8687  reinterpret_cast<char*>(&variable_selection_strategy_),
8688  reinterpret_cast<char*>(&other->variable_selection_strategy_));
8689 }
8690 
8691 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto::GetMetadata() const {
8692  return GetMetadataStatic();
8693 }
8694 
8695 
8696 // ===================================================================
8697 
8699  public:
8700 };
8701 
8702 PartialVariableAssignment::PartialVariableAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8703  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8704  vars_(arena),
8705  values_(arena) {
8706  SharedCtor();
8707  RegisterArenaDtor(arena);
8708  // @@protoc_insertion_point(arena_constructor:operations_research.sat.PartialVariableAssignment)
8709 }
8710 PartialVariableAssignment::PartialVariableAssignment(const PartialVariableAssignment& from)
8711  : ::PROTOBUF_NAMESPACE_ID::Message(),
8712  vars_(from.vars_),
8713  values_(from.values_) {
8714  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8715  // @@protoc_insertion_point(copy_constructor:operations_research.sat.PartialVariableAssignment)
8716 }
8717 
8718 void PartialVariableAssignment::SharedCtor() {
8719 }
8720 
8721 PartialVariableAssignment::~PartialVariableAssignment() {
8722  // @@protoc_insertion_point(destructor:operations_research.sat.PartialVariableAssignment)
8723  SharedDtor();
8724  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8725 }
8726 
8727 void PartialVariableAssignment::SharedDtor() {
8728  GOOGLE_DCHECK(GetArena() == nullptr);
8729 }
8730 
8731 void PartialVariableAssignment::ArenaDtor(void* object) {
8732  PartialVariableAssignment* _this = reinterpret_cast< PartialVariableAssignment* >(object);
8733  (void)_this;
8734 }
8735 void PartialVariableAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8736 }
8737 void PartialVariableAssignment::SetCachedSize(int size) const {
8738  _cached_size_.Set(size);
8739 }
8740 const PartialVariableAssignment& PartialVariableAssignment::default_instance() {
8741  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8742  return *internal_default_instance();
8743 }
8744 
8745 
8746 void PartialVariableAssignment::Clear() {
8747 // @@protoc_insertion_point(message_clear_start:operations_research.sat.PartialVariableAssignment)
8748  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8749  // Prevent compiler warnings about cached_has_bits being unused
8750  (void) cached_has_bits;
8751 
8752  vars_.Clear();
8753  values_.Clear();
8754  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8755 }
8756 
8757 const char* PartialVariableAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8758 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8759  while (!ctx->Done(&ptr)) {
8761  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8762  CHK_(ptr);
8763  switch (tag >> 3) {
8764  // repeated int32 vars = 1;
8765  case 1:
8766  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8767  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
8768  CHK_(ptr);
8769  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8770  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8771  CHK_(ptr);
8772  } else goto handle_unusual;
8773  continue;
8774  // repeated int64 values = 2;
8775  case 2:
8776  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8777  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
8778  CHK_(ptr);
8779  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
8780  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8781  CHK_(ptr);
8782  } else goto handle_unusual;
8783  continue;
8784  default: {
8785  handle_unusual:
8786  if ((tag & 7) == 4 || tag == 0) {
8787  ctx->SetLastTag(tag);
8788  goto success;
8789  }
8790  ptr = UnknownFieldParse(tag,
8791  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8792  ptr, ctx);
8793  CHK_(ptr != nullptr);
8794  continue;
8795  }
8796  } // switch
8797  } // while
8798 success:
8799  return ptr;
8800 failure:
8801  ptr = nullptr;
8802  goto success;
8803 #undef CHK_
8804 }
8805 
8806 ::PROTOBUF_NAMESPACE_ID::uint8* PartialVariableAssignment::_InternalSerialize(
8807  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8808  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.PartialVariableAssignment)
8809  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8810  (void) cached_has_bits;
8811 
8812  // repeated int32 vars = 1;
8813  {
8814  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8815  if (byte_size > 0) {
8816  target = stream->WriteInt32Packed(
8817  1, _internal_vars(), byte_size, target);
8818  }
8819  }
8820 
8821  // repeated int64 values = 2;
8822  {
8823  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
8824  if (byte_size > 0) {
8825  target = stream->WriteInt64Packed(
8826  2, _internal_values(), byte_size, target);
8827  }
8828  }
8829 
8830  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8831  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8832  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8833  }
8834  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.PartialVariableAssignment)
8835  return target;
8836 }
8837 
8838 size_t PartialVariableAssignment::ByteSizeLong() const {
8839 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.PartialVariableAssignment)
8840  size_t total_size = 0;
8841 
8842  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8843  // Prevent compiler warnings about cached_has_bits being unused
8844  (void) cached_has_bits;
8845 
8846  // repeated int32 vars = 1;
8847  {
8848  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8849  Int32Size(this->vars_);
8850  if (data_size > 0) {
8851  total_size += 1 +
8852  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8853  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8854  }
8855  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8856  _vars_cached_byte_size_.store(cached_size,
8857  std::memory_order_relaxed);
8858  total_size += data_size;
8859  }
8860 
8861  // repeated int64 values = 2;
8862  {
8863  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8864  Int64Size(this->values_);
8865  if (data_size > 0) {
8866  total_size += 1 +
8867  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8868  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8869  }
8870  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8871  _values_cached_byte_size_.store(cached_size,
8872  std::memory_order_relaxed);
8873  total_size += data_size;
8874  }
8875 
8876  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8877  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8878  _internal_metadata_, total_size, &_cached_size_);
8879  }
8880  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8881  SetCachedSize(cached_size);
8882  return total_size;
8883 }
8884 
8885 void PartialVariableAssignment::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8886 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.PartialVariableAssignment)
8887  GOOGLE_DCHECK_NE(&from, this);
8888  const PartialVariableAssignment* source =
8889  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PartialVariableAssignment>(
8890  &from);
8891  if (source == nullptr) {
8892  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.PartialVariableAssignment)
8893  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8894  } else {
8895  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.PartialVariableAssignment)
8896  MergeFrom(*source);
8897  }
8898 }
8899 
8900 void PartialVariableAssignment::MergeFrom(const PartialVariableAssignment& from) {
8901 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.PartialVariableAssignment)
8902  GOOGLE_DCHECK_NE(&from, this);
8903  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8904  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8905  (void) cached_has_bits;
8906 
8907  vars_.MergeFrom(from.vars_);
8908  values_.MergeFrom(from.values_);
8909 }
8910 
8911 void PartialVariableAssignment::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8912 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.PartialVariableAssignment)
8913  if (&from == this) return;
8914  Clear();
8915  MergeFrom(from);
8916 }
8917 
8918 void PartialVariableAssignment::CopyFrom(const PartialVariableAssignment& from) {
8919 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.PartialVariableAssignment)
8920  if (&from == this) return;
8921  Clear();
8922  MergeFrom(from);
8923 }
8924 
8925 bool PartialVariableAssignment::IsInitialized() const {
8926  return true;
8927 }
8928 
8929 void PartialVariableAssignment::InternalSwap(PartialVariableAssignment* other) {
8930  using std::swap;
8931  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8932  vars_.InternalSwap(&other->vars_);
8933  values_.InternalSwap(&other->values_);
8934 }
8935 
8936 ::PROTOBUF_NAMESPACE_ID::Metadata PartialVariableAssignment::GetMetadata() const {
8937  return GetMetadataStatic();
8938 }
8939 
8940 
8941 // ===================================================================
8942 
8944  public:
8945 };
8946 
8947 SparsePermutationProto::SparsePermutationProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8948  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8949  support_(arena),
8950  cycle_sizes_(arena) {
8951  SharedCtor();
8952  RegisterArenaDtor(arena);
8953  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SparsePermutationProto)
8954 }
8955 SparsePermutationProto::SparsePermutationProto(const SparsePermutationProto& from)
8956  : ::PROTOBUF_NAMESPACE_ID::Message(),
8957  support_(from.support_),
8958  cycle_sizes_(from.cycle_sizes_) {
8959  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8960  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SparsePermutationProto)
8961 }
8962 
8963 void SparsePermutationProto::SharedCtor() {
8964 }
8965 
8966 SparsePermutationProto::~SparsePermutationProto() {
8967  // @@protoc_insertion_point(destructor:operations_research.sat.SparsePermutationProto)
8968  SharedDtor();
8969  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8970 }
8971 
8972 void SparsePermutationProto::SharedDtor() {
8973  GOOGLE_DCHECK(GetArena() == nullptr);
8974 }
8975 
8976 void SparsePermutationProto::ArenaDtor(void* object) {
8977  SparsePermutationProto* _this = reinterpret_cast< SparsePermutationProto* >(object);
8978  (void)_this;
8979 }
8980 void SparsePermutationProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8981 }
8982 void SparsePermutationProto::SetCachedSize(int size) const {
8983  _cached_size_.Set(size);
8984 }
8985 const SparsePermutationProto& SparsePermutationProto::default_instance() {
8986  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8987  return *internal_default_instance();
8988 }
8989 
8990 
8991 void SparsePermutationProto::Clear() {
8992 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SparsePermutationProto)
8993  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8994  // Prevent compiler warnings about cached_has_bits being unused
8995  (void) cached_has_bits;
8996 
8997  support_.Clear();
8998  cycle_sizes_.Clear();
8999  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9000 }
9001 
9002 const char* SparsePermutationProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9003 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9004  while (!ctx->Done(&ptr)) {
9006  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9007  CHK_(ptr);
9008  switch (tag >> 3) {
9009  // repeated int32 support = 1;
9010  case 1:
9011  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9012  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_support(), ptr, ctx);
9013  CHK_(ptr);
9014  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
9015  _internal_add_support(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9016  CHK_(ptr);
9017  } else goto handle_unusual;
9018  continue;
9019  // repeated int32 cycle_sizes = 2;
9020  case 2:
9021  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9022  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_cycle_sizes(), ptr, ctx);
9023  CHK_(ptr);
9024  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
9025  _internal_add_cycle_sizes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9026  CHK_(ptr);
9027  } else goto handle_unusual;
9028  continue;
9029  default: {
9030  handle_unusual:
9031  if ((tag & 7) == 4 || tag == 0) {
9032  ctx->SetLastTag(tag);
9033  goto success;
9034  }
9035  ptr = UnknownFieldParse(tag,
9036  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9037  ptr, ctx);
9038  CHK_(ptr != nullptr);
9039  continue;
9040  }
9041  } // switch
9042  } // while
9043 success:
9044  return ptr;
9045 failure:
9046  ptr = nullptr;
9047  goto success;
9048 #undef CHK_
9049 }
9050 
9051 ::PROTOBUF_NAMESPACE_ID::uint8* SparsePermutationProto::_InternalSerialize(
9052  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9053  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SparsePermutationProto)
9054  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9055  (void) cached_has_bits;
9056 
9057  // repeated int32 support = 1;
9058  {
9059  int byte_size = _support_cached_byte_size_.load(std::memory_order_relaxed);
9060  if (byte_size > 0) {
9061  target = stream->WriteInt32Packed(
9062  1, _internal_support(), byte_size, target);
9063  }
9064  }
9065 
9066  // repeated int32 cycle_sizes = 2;
9067  {
9068  int byte_size = _cycle_sizes_cached_byte_size_.load(std::memory_order_relaxed);
9069  if (byte_size > 0) {
9070  target = stream->WriteInt32Packed(
9071  2, _internal_cycle_sizes(), byte_size, target);
9072  }
9073  }
9074 
9075  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9076  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9077  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9078  }
9079  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SparsePermutationProto)
9080  return target;
9081 }
9082 
9083 size_t SparsePermutationProto::ByteSizeLong() const {
9084 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SparsePermutationProto)
9085  size_t total_size = 0;
9086 
9087  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9088  // Prevent compiler warnings about cached_has_bits being unused
9089  (void) cached_has_bits;
9090 
9091  // repeated int32 support = 1;
9092  {
9093  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9094  Int32Size(this->support_);
9095  if (data_size > 0) {
9096  total_size += 1 +
9097  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9098  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9099  }
9100  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9101  _support_cached_byte_size_.store(cached_size,
9102  std::memory_order_relaxed);
9103  total_size += data_size;
9104  }
9105 
9106  // repeated int32 cycle_sizes = 2;
9107  {
9108  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9109  Int32Size(this->cycle_sizes_);
9110  if (data_size > 0) {
9111  total_size += 1 +
9112  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9113  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9114  }
9115  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9116  _cycle_sizes_cached_byte_size_.store(cached_size,
9117  std::memory_order_relaxed);
9118  total_size += data_size;
9119  }
9120 
9121  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9122  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9123  _internal_metadata_, total_size, &_cached_size_);
9124  }
9125  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9126  SetCachedSize(cached_size);
9127  return total_size;
9128 }
9129 
9130 void SparsePermutationProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9131 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SparsePermutationProto)
9132  GOOGLE_DCHECK_NE(&from, this);
9133  const SparsePermutationProto* source =
9134  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SparsePermutationProto>(
9135  &from);
9136  if (source == nullptr) {
9137  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SparsePermutationProto)
9138  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9139  } else {
9140  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SparsePermutationProto)
9141  MergeFrom(*source);
9142  }
9143 }
9144 
9145 void SparsePermutationProto::MergeFrom(const SparsePermutationProto& from) {
9146 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SparsePermutationProto)
9147  GOOGLE_DCHECK_NE(&from, this);
9148  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9149  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9150  (void) cached_has_bits;
9151 
9152  support_.MergeFrom(from.support_);
9153  cycle_sizes_.MergeFrom(from.cycle_sizes_);
9154 }
9155 
9156 void SparsePermutationProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9157 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SparsePermutationProto)
9158  if (&from == this) return;
9159  Clear();
9160  MergeFrom(from);
9161 }
9162 
9163 void SparsePermutationProto::CopyFrom(const SparsePermutationProto& from) {
9164 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SparsePermutationProto)
9165  if (&from == this) return;
9166  Clear();
9167  MergeFrom(from);
9168 }
9169 
9170 bool SparsePermutationProto::IsInitialized() const {
9171  return true;
9172 }
9173 
9174 void SparsePermutationProto::InternalSwap(SparsePermutationProto* other) {
9175  using std::swap;
9176  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9177  support_.InternalSwap(&other->support_);
9178  cycle_sizes_.InternalSwap(&other->cycle_sizes_);
9179 }
9180 
9181 ::PROTOBUF_NAMESPACE_ID::Metadata SparsePermutationProto::GetMetadata() const {
9182  return GetMetadataStatic();
9183 }
9184 
9185 
9186 // ===================================================================
9187 
9189  public:
9190 };
9191 
9192 DenseMatrixProto::DenseMatrixProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9193  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9194  entries_(arena) {
9195  SharedCtor();
9196  RegisterArenaDtor(arena);
9197  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DenseMatrixProto)
9198 }
9199 DenseMatrixProto::DenseMatrixProto(const DenseMatrixProto& from)
9200  : ::PROTOBUF_NAMESPACE_ID::Message(),
9201  entries_(from.entries_) {
9202  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9203  ::memcpy(&num_rows_, &from.num_rows_,
9204  static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9205  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9206  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DenseMatrixProto)
9207 }
9208 
9209 void DenseMatrixProto::SharedCtor() {
9210  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9211  reinterpret_cast<char*>(&num_rows_) - reinterpret_cast<char*>(this)),
9212  0, static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9213  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9214 }
9215 
9216 DenseMatrixProto::~DenseMatrixProto() {
9217  // @@protoc_insertion_point(destructor:operations_research.sat.DenseMatrixProto)
9218  SharedDtor();
9219  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9220 }
9221 
9222 void DenseMatrixProto::SharedDtor() {
9223  GOOGLE_DCHECK(GetArena() == nullptr);
9224 }
9225 
9226 void DenseMatrixProto::ArenaDtor(void* object) {
9227  DenseMatrixProto* _this = reinterpret_cast< DenseMatrixProto* >(object);
9228  (void)_this;
9229 }
9230 void DenseMatrixProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9231 }
9232 void DenseMatrixProto::SetCachedSize(int size) const {
9233  _cached_size_.Set(size);
9234 }
9235 const DenseMatrixProto& DenseMatrixProto::default_instance() {
9236  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9237  return *internal_default_instance();
9238 }
9239 
9240 
9241 void DenseMatrixProto::Clear() {
9242 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DenseMatrixProto)
9243  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9244  // Prevent compiler warnings about cached_has_bits being unused
9245  (void) cached_has_bits;
9246 
9247  entries_.Clear();
9248  ::memset(&num_rows_, 0, static_cast<size_t>(
9249  reinterpret_cast<char*>(&num_cols_) -
9250  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9251  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9252 }
9253 
9254 const char* DenseMatrixProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9255 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9256  while (!ctx->Done(&ptr)) {
9258  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9259  CHK_(ptr);
9260  switch (tag >> 3) {
9261  // int32 num_rows = 1;
9262  case 1:
9263  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
9264  num_rows_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9265  CHK_(ptr);
9266  } else goto handle_unusual;
9267  continue;
9268  // int32 num_cols = 2;
9269  case 2:
9270  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
9271  num_cols_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9272  CHK_(ptr);
9273  } else goto handle_unusual;
9274  continue;
9275  // repeated int32 entries = 3;
9276  case 3:
9277  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9278  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_entries(), ptr, ctx);
9279  CHK_(ptr);
9280  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
9281  _internal_add_entries(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9282  CHK_(ptr);
9283  } else goto handle_unusual;
9284  continue;
9285  default: {
9286  handle_unusual:
9287  if ((tag & 7) == 4 || tag == 0) {
9288  ctx->SetLastTag(tag);
9289  goto success;
9290  }
9291  ptr = UnknownFieldParse(tag,
9292  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9293  ptr, ctx);
9294  CHK_(ptr != nullptr);
9295  continue;
9296  }
9297  } // switch
9298  } // while
9299 success:
9300  return ptr;
9301 failure:
9302  ptr = nullptr;
9303  goto success;
9304 #undef CHK_
9305 }
9306 
9307 ::PROTOBUF_NAMESPACE_ID::uint8* DenseMatrixProto::_InternalSerialize(
9308  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9309  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DenseMatrixProto)
9310  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9311  (void) cached_has_bits;
9312 
9313  // int32 num_rows = 1;
9314  if (this->num_rows() != 0) {
9315  target = stream->EnsureSpace(target);
9316  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_num_rows(), target);
9317  }
9318 
9319  // int32 num_cols = 2;
9320  if (this->num_cols() != 0) {
9321  target = stream->EnsureSpace(target);
9322  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_cols(), target);
9323  }
9324 
9325  // repeated int32 entries = 3;
9326  {
9327  int byte_size = _entries_cached_byte_size_.load(std::memory_order_relaxed);
9328  if (byte_size > 0) {
9329  target = stream->WriteInt32Packed(
9330  3, _internal_entries(), byte_size, target);
9331  }
9332  }
9333 
9334  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9335  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9336  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9337  }
9338  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DenseMatrixProto)
9339  return target;
9340 }
9341 
9342 size_t DenseMatrixProto::ByteSizeLong() const {
9343 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DenseMatrixProto)
9344  size_t total_size = 0;
9345 
9346  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9347  // Prevent compiler warnings about cached_has_bits being unused
9348  (void) cached_has_bits;
9349 
9350  // repeated int32 entries = 3;
9351  {
9352  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9353  Int32Size(this->entries_);
9354  if (data_size > 0) {
9355  total_size += 1 +
9356  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9357  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9358  }
9359  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9360  _entries_cached_byte_size_.store(cached_size,
9361  std::memory_order_relaxed);
9362  total_size += data_size;
9363  }
9364 
9365  // int32 num_rows = 1;
9366  if (this->num_rows() != 0) {
9367  total_size += 1 +
9368  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9369  this->_internal_num_rows());
9370  }
9371 
9372  // int32 num_cols = 2;
9373  if (this->num_cols() != 0) {
9374  total_size += 1 +
9375  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9376  this->_internal_num_cols());
9377  }
9378 
9379  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9380  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9381  _internal_metadata_, total_size, &_cached_size_);
9382  }
9383  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9384  SetCachedSize(cached_size);
9385  return total_size;
9386 }
9387 
9388 void DenseMatrixProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9389 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DenseMatrixProto)
9390  GOOGLE_DCHECK_NE(&from, this);
9391  const DenseMatrixProto* source =
9392  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DenseMatrixProto>(
9393  &from);
9394  if (source == nullptr) {
9395  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DenseMatrixProto)
9396  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9397  } else {
9398  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DenseMatrixProto)
9399  MergeFrom(*source);
9400  }
9401 }
9402 
9403 void DenseMatrixProto::MergeFrom(const DenseMatrixProto& from) {
9404 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DenseMatrixProto)
9405  GOOGLE_DCHECK_NE(&from, this);
9406  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9407  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9408  (void) cached_has_bits;
9409 
9410  entries_.MergeFrom(from.entries_);
9411  if (from.num_rows() != 0) {
9412  _internal_set_num_rows(from._internal_num_rows());
9413  }
9414  if (from.num_cols() != 0) {
9415  _internal_set_num_cols(from._internal_num_cols());
9416  }
9417 }
9418 
9419 void DenseMatrixProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9420 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DenseMatrixProto)
9421  if (&from == this) return;
9422  Clear();
9423  MergeFrom(from);
9424 }
9425 
9426 void DenseMatrixProto::CopyFrom(const DenseMatrixProto& from) {
9427 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DenseMatrixProto)
9428  if (&from == this) return;
9429  Clear();
9430  MergeFrom(from);
9431 }
9432 
9433 bool DenseMatrixProto::IsInitialized() const {
9434  return true;
9435 }
9436 
9437 void DenseMatrixProto::InternalSwap(DenseMatrixProto* other) {
9438  using std::swap;
9439  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9440  entries_.InternalSwap(&other->entries_);
9441  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9442  PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_cols_)
9443  + sizeof(DenseMatrixProto::num_cols_)
9444  - PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_rows_)>(
9445  reinterpret_cast<char*>(&num_rows_),
9446  reinterpret_cast<char*>(&other->num_rows_));
9447 }
9448 
9449 ::PROTOBUF_NAMESPACE_ID::Metadata DenseMatrixProto::GetMetadata() const {
9450  return GetMetadataStatic();
9451 }
9452 
9453 
9454 // ===================================================================
9455 
9457  public:
9458 };
9459 
9460 SymmetryProto::SymmetryProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9461  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9462  permutations_(arena),
9463  orbitopes_(arena) {
9464  SharedCtor();
9465  RegisterArenaDtor(arena);
9466  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SymmetryProto)
9467 }
9468 SymmetryProto::SymmetryProto(const SymmetryProto& from)
9469  : ::PROTOBUF_NAMESPACE_ID::Message(),
9470  permutations_(from.permutations_),
9471  orbitopes_(from.orbitopes_) {
9472  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9473  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SymmetryProto)
9474 }
9475 
9476 void SymmetryProto::SharedCtor() {
9477  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9478 }
9479 
9480 SymmetryProto::~SymmetryProto() {
9481  // @@protoc_insertion_point(destructor:operations_research.sat.SymmetryProto)
9482  SharedDtor();
9483  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9484 }
9485 
9486 void SymmetryProto::SharedDtor() {
9487  GOOGLE_DCHECK(GetArena() == nullptr);
9488 }
9489 
9490 void SymmetryProto::ArenaDtor(void* object) {
9491  SymmetryProto* _this = reinterpret_cast< SymmetryProto* >(object);
9492  (void)_this;
9493 }
9494 void SymmetryProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9495 }
9496 void SymmetryProto::SetCachedSize(int size) const {
9497  _cached_size_.Set(size);
9498 }
9499 const SymmetryProto& SymmetryProto::default_instance() {
9500  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9501  return *internal_default_instance();
9502 }
9503 
9504 
9505 void SymmetryProto::Clear() {
9506 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SymmetryProto)
9507  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9508  // Prevent compiler warnings about cached_has_bits being unused
9509  (void) cached_has_bits;
9510 
9511  permutations_.Clear();
9512  orbitopes_.Clear();
9513  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9514 }
9515 
9516 const char* SymmetryProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9517 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9518  while (!ctx->Done(&ptr)) {
9520  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9521  CHK_(ptr);
9522  switch (tag >> 3) {
9523  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9524  case 1:
9525  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9526  ptr -= 1;
9527  do {
9528  ptr += 1;
9529  ptr = ctx->ParseMessage(_internal_add_permutations(), ptr);
9530  CHK_(ptr);
9531  if (!ctx->DataAvailable(ptr)) break;
9532  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
9533  } else goto handle_unusual;
9534  continue;
9535  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9536  case 2:
9537  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9538  ptr -= 1;
9539  do {
9540  ptr += 1;
9541  ptr = ctx->ParseMessage(_internal_add_orbitopes(), ptr);
9542  CHK_(ptr);
9543  if (!ctx->DataAvailable(ptr)) break;
9544  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9545  } else goto handle_unusual;
9546  continue;
9547  default: {
9548  handle_unusual:
9549  if ((tag & 7) == 4 || tag == 0) {
9550  ctx->SetLastTag(tag);
9551  goto success;
9552  }
9553  ptr = UnknownFieldParse(tag,
9554  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9555  ptr, ctx);
9556  CHK_(ptr != nullptr);
9557  continue;
9558  }
9559  } // switch
9560  } // while
9561 success:
9562  return ptr;
9563 failure:
9564  ptr = nullptr;
9565  goto success;
9566 #undef CHK_
9567 }
9568 
9569 ::PROTOBUF_NAMESPACE_ID::uint8* SymmetryProto::_InternalSerialize(
9570  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9571  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SymmetryProto)
9572  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9573  (void) cached_has_bits;
9574 
9575  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9576  for (unsigned int i = 0,
9577  n = static_cast<unsigned int>(this->_internal_permutations_size()); i < n; i++) {
9578  target = stream->EnsureSpace(target);
9579  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9580  InternalWriteMessage(1, this->_internal_permutations(i), target, stream);
9581  }
9582 
9583  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9584  for (unsigned int i = 0,
9585  n = static_cast<unsigned int>(this->_internal_orbitopes_size()); i < n; i++) {
9586  target = stream->EnsureSpace(target);
9587  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9588  InternalWriteMessage(2, this->_internal_orbitopes(i), target, stream);
9589  }
9590 
9591  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9592  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9593  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9594  }
9595  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SymmetryProto)
9596  return target;
9597 }
9598 
9599 size_t SymmetryProto::ByteSizeLong() const {
9600 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SymmetryProto)
9601  size_t total_size = 0;
9602 
9603  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9604  // Prevent compiler warnings about cached_has_bits being unused
9605  (void) cached_has_bits;
9606 
9607  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9608  total_size += 1UL * this->_internal_permutations_size();
9609  for (const auto& msg : this->permutations_) {
9610  total_size +=
9611  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9612  }
9613 
9614  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9615  total_size += 1UL * this->_internal_orbitopes_size();
9616  for (const auto& msg : this->orbitopes_) {
9617  total_size +=
9618  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9619  }
9620 
9621  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9622  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9623  _internal_metadata_, total_size, &_cached_size_);
9624  }
9625  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9626  SetCachedSize(cached_size);
9627  return total_size;
9628 }
9629 
9630 void SymmetryProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9631 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.SymmetryProto)
9632  GOOGLE_DCHECK_NE(&from, this);
9633  const SymmetryProto* source =
9634  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<SymmetryProto>(
9635  &from);
9636  if (source == nullptr) {
9637  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.SymmetryProto)
9638  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9639  } else {
9640  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.SymmetryProto)
9641  MergeFrom(*source);
9642  }
9643 }
9644 
9645 void SymmetryProto::MergeFrom(const SymmetryProto& from) {
9646 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SymmetryProto)
9647  GOOGLE_DCHECK_NE(&from, this);
9648  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9649  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9650  (void) cached_has_bits;
9651 
9652  permutations_.MergeFrom(from.permutations_);
9653  orbitopes_.MergeFrom(from.orbitopes_);
9654 }
9655 
9656 void SymmetryProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9657 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.SymmetryProto)
9658  if (&from == this) return;
9659  Clear();
9660  MergeFrom(from);
9661 }
9662 
9663 void SymmetryProto::CopyFrom(const SymmetryProto& from) {
9664 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SymmetryProto)
9665  if (&from == this) return;
9666  Clear();
9667  MergeFrom(from);
9668 }
9669 
9670 bool SymmetryProto::IsInitialized() const {
9671  return true;
9672 }
9673 
9674 void SymmetryProto::InternalSwap(SymmetryProto* other) {
9675  using std::swap;
9676  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9677  permutations_.InternalSwap(&other->permutations_);
9678  orbitopes_.InternalSwap(&other->orbitopes_);
9679 }
9680 
9681 ::PROTOBUF_NAMESPACE_ID::Metadata SymmetryProto::GetMetadata() const {
9682  return GetMetadataStatic();
9683 }
9684 
9685 
9686 // ===================================================================
9687 
9689  public:
9690  static const ::operations_research::sat::CpObjectiveProto& objective(const CpModelProto* msg);
9691  static const ::operations_research::sat::PartialVariableAssignment& solution_hint(const CpModelProto* msg);
9692  static const ::operations_research::sat::SymmetryProto& symmetry(const CpModelProto* msg);
9693 };
9694 
9695 const ::operations_research::sat::CpObjectiveProto&
9696 CpModelProto::_Internal::objective(const CpModelProto* msg) {
9697  return *msg->objective_;
9698 }
9699 const ::operations_research::sat::PartialVariableAssignment&
9700 CpModelProto::_Internal::solution_hint(const CpModelProto* msg) {
9701  return *msg->solution_hint_;
9702 }
9703 const ::operations_research::sat::SymmetryProto&
9704 CpModelProto::_Internal::symmetry(const CpModelProto* msg) {
9705  return *msg->symmetry_;
9706 }
9707 CpModelProto::CpModelProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9708  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9709  variables_(arena),
9710  constraints_(arena),
9711  search_strategy_(arena),
9712  assumptions_(arena) {
9713  SharedCtor();
9714  RegisterArenaDtor(arena);
9715  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpModelProto)
9716 }
9717 CpModelProto::CpModelProto(const CpModelProto& from)
9718  : ::PROTOBUF_NAMESPACE_ID::Message(),
9719  variables_(from.variables_),
9720  constraints_(from.constraints_),
9721  search_strategy_(from.search_strategy_),
9722  assumptions_(from.assumptions_) {
9723  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9724  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9725  if (!from._internal_name().empty()) {
9726  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
9727  GetArena());
9728  }
9729  if (from._internal_has_objective()) {
9730  objective_ = new ::operations_research::sat::CpObjectiveProto(*from.objective_);
9731  } else {
9732  objective_ = nullptr;
9733  }
9734  if (from._internal_has_solution_hint()) {
9735  solution_hint_ = new ::operations_research::sat::PartialVariableAssignment(*from.solution_hint_);
9736  } else {
9737  solution_hint_ = nullptr;
9738  }
9739  if (from._internal_has_symmetry()) {
9740  symmetry_ = new ::operations_research::sat::SymmetryProto(*from.symmetry_);
9741  } else {
9742  symmetry_ = nullptr;
9743  }
9744  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpModelProto)
9745 }
9746 
9747 void CpModelProto::SharedCtor() {
9748  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9749  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9750  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9751  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
9752  0, static_cast<size_t>(reinterpret_cast<char*>(&symmetry_) -
9753  reinterpret_cast<char*>(&objective_)) + sizeof(symmetry_));
9754 }
9755 
9756 CpModelProto::~CpModelProto() {
9757  // @@protoc_insertion_point(destructor:operations_research.sat.CpModelProto)
9758  SharedDtor();
9759  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9760 }
9761 
9762 void CpModelProto::SharedDtor() {
9763  GOOGLE_DCHECK(GetArena() == nullptr);
9764  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9765  if (this != internal_default_instance()) delete objective_;
9766  if (this != internal_default_instance()) delete solution_hint_;
9767  if (this != internal_default_instance()) delete symmetry_;
9768 }
9769 
9770 void CpModelProto::ArenaDtor(void* object) {
9771  CpModelProto* _this = reinterpret_cast< CpModelProto* >(object);
9772  (void)_this;
9773 }
9774 void CpModelProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9775 }
9776 void CpModelProto::SetCachedSize(int size) const {
9777  _cached_size_.Set(size);
9778 }
9779 const CpModelProto& CpModelProto::default_instance() {
9780  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9781  return *internal_default_instance();
9782 }
9783 
9784 
9785 void CpModelProto::Clear() {
9786 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpModelProto)
9787  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9788  // Prevent compiler warnings about cached_has_bits being unused
9789  (void) cached_has_bits;
9790 
9791  variables_.Clear();
9792  constraints_.Clear();
9793  search_strategy_.Clear();
9794  assumptions_.Clear();
9795  name_.ClearToEmpty();
9796  if (GetArena() == nullptr && objective_ != nullptr) {
9797  delete objective_;
9798  }
9799  objective_ = nullptr;
9800  if (GetArena() == nullptr && solution_hint_ != nullptr) {
9801  delete solution_hint_;
9802  }
9803  solution_hint_ = nullptr;
9804  if (GetArena() == nullptr && symmetry_ != nullptr) {
9805  delete symmetry_;
9806  }
9807  symmetry_ = nullptr;
9808  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9809 }
9810 
9811 const char* CpModelProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9812 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9813  while (!ctx->Done(&ptr)) {
9815  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9816  CHK_(ptr);
9817  switch (tag >> 3) {
9818  // string name = 1;
9819  case 1:
9820  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9821  auto str = _internal_mutable_name();
9822  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
9823  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpModelProto.name"));
9824  CHK_(ptr);
9825  } else goto handle_unusual;
9826  continue;
9827  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9828  case 2:
9829  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9830  ptr -= 1;
9831  do {
9832  ptr += 1;
9833  ptr = ctx->ParseMessage(_internal_add_variables(), ptr);
9834  CHK_(ptr);
9835  if (!ctx->DataAvailable(ptr)) break;
9836  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9837  } else goto handle_unusual;
9838  continue;
9839  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9840  case 3:
9841  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9842  ptr -= 1;
9843  do {
9844  ptr += 1;
9845  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
9846  CHK_(ptr);
9847  if (!ctx->DataAvailable(ptr)) break;
9848  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
9849  } else goto handle_unusual;
9850  continue;
9851  // .operations_research.sat.CpObjectiveProto objective = 4;
9852  case 4:
9853  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
9854  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
9855  CHK_(ptr);
9856  } else goto handle_unusual;
9857  continue;
9858  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9859  case 5:
9860  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
9861  ptr -= 1;
9862  do {
9863  ptr += 1;
9864  ptr = ctx->ParseMessage(_internal_add_search_strategy(), ptr);
9865  CHK_(ptr);
9866  if (!ctx->DataAvailable(ptr)) break;
9867  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
9868  } else goto handle_unusual;
9869  continue;
9870  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9871  case 6:
9872  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
9873  ptr = ctx->ParseMessage(_internal_mutable_solution_hint(), ptr);
9874  CHK_(ptr);
9875  } else goto handle_unusual;
9876  continue;
9877  // repeated int32 assumptions = 7;
9878  case 7:
9879  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
9880  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_assumptions(), ptr, ctx);
9881  CHK_(ptr);
9882  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
9883  _internal_add_assumptions(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9884  CHK_(ptr);
9885  } else goto handle_unusual;
9886  continue;
9887  // .operations_research.sat.SymmetryProto symmetry = 8;
9888  case 8:
9889  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
9890  ptr = ctx->ParseMessage(_internal_mutable_symmetry(), ptr);
9891  CHK_(ptr);
9892  } else goto handle_unusual;
9893  continue;
9894  default: {
9895  handle_unusual:
9896  if ((tag & 7) == 4 || tag == 0) {
9897  ctx->SetLastTag(tag);
9898  goto success;
9899  }
9900  ptr = UnknownFieldParse(tag,
9901  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9902  ptr, ctx);
9903  CHK_(ptr != nullptr);
9904  continue;
9905  }
9906  } // switch
9907  } // while
9908 success:
9909  return ptr;
9910 failure:
9911  ptr = nullptr;
9912  goto success;
9913 #undef CHK_
9914 }
9915 
9916 ::PROTOBUF_NAMESPACE_ID::uint8* CpModelProto::_InternalSerialize(
9917  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9918  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpModelProto)
9919  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9920  (void) cached_has_bits;
9921 
9922  // string name = 1;
9923  if (this->name().size() > 0) {
9924  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9925  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
9926  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9927  "operations_research.sat.CpModelProto.name");
9928  target = stream->WriteStringMaybeAliased(
9929  1, this->_internal_name(), target);
9930  }
9931 
9932  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9933  for (unsigned int i = 0,
9934  n = static_cast<unsigned int>(this->_internal_variables_size()); i < n; i++) {
9935  target = stream->EnsureSpace(target);
9936  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9937  InternalWriteMessage(2, this->_internal_variables(i), target, stream);
9938  }
9939 
9940  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9941  for (unsigned int i = 0,
9942  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
9943  target = stream->EnsureSpace(target);
9944  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9945  InternalWriteMessage(3, this->_internal_constraints(i), target, stream);
9946  }
9947 
9948  // .operations_research.sat.CpObjectiveProto objective = 4;
9949  if (this->has_objective()) {
9950  target = stream->EnsureSpace(target);
9951  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9952  InternalWriteMessage(
9953  4, _Internal::objective(this), target, stream);
9954  }
9955 
9956  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9957  for (unsigned int i = 0,
9958  n = static_cast<unsigned int>(this->_internal_search_strategy_size()); i < n; i++) {
9959  target = stream->EnsureSpace(target);
9960  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9961  InternalWriteMessage(5, this->_internal_search_strategy(i), target, stream);
9962  }
9963 
9964  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9965  if (this->has_solution_hint()) {
9966  target = stream->EnsureSpace(target);
9967  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9968  InternalWriteMessage(
9969  6, _Internal::solution_hint(this), target, stream);
9970  }
9971 
9972  // repeated int32 assumptions = 7;
9973  {
9974  int byte_size = _assumptions_cached_byte_size_.load(std::memory_order_relaxed);
9975  if (byte_size > 0) {
9976  target = stream->WriteInt32Packed(
9977  7, _internal_assumptions(), byte_size, target);
9978  }
9979  }
9980 
9981  // .operations_research.sat.SymmetryProto symmetry = 8;
9982  if (this->has_symmetry()) {
9983  target = stream->EnsureSpace(target);
9984  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9985  InternalWriteMessage(
9986  8, _Internal::symmetry(this), target, stream);
9987  }
9988 
9989  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9990  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9991  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9992  }
9993  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpModelProto)
9994  return target;
9995 }
9996 
9997 size_t CpModelProto::ByteSizeLong() const {
9998 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpModelProto)
9999  size_t total_size = 0;
10000 
10001  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10002  // Prevent compiler warnings about cached_has_bits being unused
10003  (void) cached_has_bits;
10004 
10005  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
10006  total_size += 1UL * this->_internal_variables_size();
10007  for (const auto& msg : this->variables_) {
10008  total_size +=
10009  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10010  }
10011 
10012  // repeated .operations_research.sat.ConstraintProto constraints = 3;
10013  total_size += 1UL * this->_internal_constraints_size();
10014  for (const auto& msg : this->constraints_) {
10015  total_size +=
10016  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10017  }
10018 
10019  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
10020  total_size += 1UL * this->_internal_search_strategy_size();
10021  for (const auto& msg : this->search_strategy_) {
10022  total_size +=
10023  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10024  }
10025 
10026  // repeated int32 assumptions = 7;
10027  {
10028  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10029  Int32Size(this->assumptions_);
10030  if (data_size > 0) {
10031  total_size += 1 +
10032  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10033  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10034  }
10035  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10036  _assumptions_cached_byte_size_.store(cached_size,
10037  std::memory_order_relaxed);
10038  total_size += data_size;
10039  }
10040 
10041  // string name = 1;
10042  if (this->name().size() > 0) {
10043  total_size += 1 +
10044  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10045  this->_internal_name());
10046  }
10047 
10048  // .operations_research.sat.CpObjectiveProto objective = 4;
10049  if (this->has_objective()) {
10050  total_size += 1 +
10051  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10052  *objective_);
10053  }
10054 
10055  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
10056  if (this->has_solution_hint()) {
10057  total_size += 1 +
10058  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10059  *solution_hint_);
10060  }
10061 
10062  // .operations_research.sat.SymmetryProto symmetry = 8;
10063  if (this->has_symmetry()) {
10064  total_size += 1 +
10065  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10066  *symmetry_);
10067  }
10068 
10069  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10070  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10071  _internal_metadata_, total_size, &_cached_size_);
10072  }
10073  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10074  SetCachedSize(cached_size);
10075  return total_size;
10076 }
10077 
10078 void CpModelProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10079 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpModelProto)
10080  GOOGLE_DCHECK_NE(&from, this);
10081  const CpModelProto* source =
10082  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpModelProto>(
10083  &from);
10084  if (source == nullptr) {
10085  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpModelProto)
10086  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
10087  } else {
10088  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpModelProto)
10089  MergeFrom(*source);
10090  }
10091 }
10092 
10093 void CpModelProto::MergeFrom(const CpModelProto& from) {
10094 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpModelProto)
10095  GOOGLE_DCHECK_NE(&from, this);
10096  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10097  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10098  (void) cached_has_bits;
10099 
10100  variables_.MergeFrom(from.variables_);
10101  constraints_.MergeFrom(from.constraints_);
10102  search_strategy_.MergeFrom(from.search_strategy_);
10103  assumptions_.MergeFrom(from.assumptions_);
10104  if (from.name().size() > 0) {
10105  _internal_set_name(from._internal_name());
10106  }
10107  if (from.has_objective()) {
10108  _internal_mutable_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_objective());
10109  }
10110  if (from.has_solution_hint()) {
10111  _internal_mutable_solution_hint()->::operations_research::sat::PartialVariableAssignment::MergeFrom(from._internal_solution_hint());
10112  }
10113  if (from.has_symmetry()) {
10114  _internal_mutable_symmetry()->::operations_research::sat::SymmetryProto::MergeFrom(from._internal_symmetry());
10115  }
10116 }
10117 
10118 void CpModelProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10119 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpModelProto)
10120  if (&from == this) return;
10121  Clear();
10122  MergeFrom(from);
10123 }
10124 
10125 void CpModelProto::CopyFrom(const CpModelProto& from) {
10126 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpModelProto)
10127  if (&from == this) return;
10128  Clear();
10129  MergeFrom(from);
10130 }
10131 
10132 bool CpModelProto::IsInitialized() const {
10133  return true;
10134 }
10135 
10136 void CpModelProto::InternalSwap(CpModelProto* other) {
10137  using std::swap;
10138  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
10139  variables_.InternalSwap(&other->variables_);
10140  constraints_.InternalSwap(&other->constraints_);
10141  search_strategy_.InternalSwap(&other->search_strategy_);
10142  assumptions_.InternalSwap(&other->assumptions_);
10143  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10144  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10145  PROTOBUF_FIELD_OFFSET(CpModelProto, symmetry_)
10146  + sizeof(CpModelProto::symmetry_)
10147  - PROTOBUF_FIELD_OFFSET(CpModelProto, objective_)>(
10148  reinterpret_cast<char*>(&objective_),
10149  reinterpret_cast<char*>(&other->objective_));
10150 }
10151 
10152 ::PROTOBUF_NAMESPACE_ID::Metadata CpModelProto::GetMetadata() const {
10153  return GetMetadataStatic();
10154 }
10155 
10156 
10157 // ===================================================================
10158 
10160  public:
10161 };
10162 
10163 CpSolverResponse::CpSolverResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
10164  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
10165  solution_(arena),
10166  solution_lower_bounds_(arena),
10167  solution_upper_bounds_(arena),
10168  tightened_variables_(arena),
10169  sufficient_assumptions_for_infeasibility_(arena) {
10170  SharedCtor();
10171  RegisterArenaDtor(arena);
10172  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverResponse)
10173 }
10174 CpSolverResponse::CpSolverResponse(const CpSolverResponse& from)
10175  : ::PROTOBUF_NAMESPACE_ID::Message(),
10176  solution_(from.solution_),
10177  solution_lower_bounds_(from.solution_lower_bounds_),
10178  solution_upper_bounds_(from.solution_upper_bounds_),
10179  tightened_variables_(from.tightened_variables_),
10180  sufficient_assumptions_for_infeasibility_(from.sufficient_assumptions_for_infeasibility_) {
10181  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10182  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10183  if (!from._internal_solution_info().empty()) {
10184  solution_info_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solution_info(),
10185  GetArena());
10186  }
10187  ::memcpy(&objective_value_, &from.objective_value_,
10188  static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
10189  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10190  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverResponse)
10191 }
10192 
10193 void CpSolverResponse::SharedCtor() {
10194  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto.base);
10195  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10196  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
10197  reinterpret_cast<char*>(&objective_value_) - reinterpret_cast<char*>(this)),
10198  0, static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
10199  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10200 }
10201 
10202 CpSolverResponse::~CpSolverResponse() {
10203  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverResponse)
10204  SharedDtor();
10205  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10206 }
10207 
10208 void CpSolverResponse::SharedDtor() {
10209  GOOGLE_DCHECK(GetArena() == nullptr);
10210  solution_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10211 }
10212 
10213 void CpSolverResponse::ArenaDtor(void* object) {
10214  CpSolverResponse* _this = reinterpret_cast< CpSolverResponse* >(object);
10215  (void)_this;
10216 }
10217 void CpSolverResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
10218 }
10219 void CpSolverResponse::SetCachedSize(int size) const {
10220  _cached_size_.Set(size);
10221 }
10222 const CpSolverResponse& CpSolverResponse::default_instance() {
10223  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto.base);
10224  return *internal_default_instance();
10225 }
10226 
10227 
10228 void CpSolverResponse::Clear() {
10229 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverResponse)
10230  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10231  // Prevent compiler warnings about cached_has_bits being unused
10232  (void) cached_has_bits;
10233 
10234  solution_.Clear();
10235  solution_lower_bounds_.Clear();
10236  solution_upper_bounds_.Clear();
10237  tightened_variables_.Clear();
10238  sufficient_assumptions_for_infeasibility_.Clear();
10239  solution_info_.ClearToEmpty();
10240  ::memset(&objective_value_, 0, static_cast<size_t>(
10241  reinterpret_cast<char*>(&num_lp_iterations_) -
10242  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10243  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10244 }
10245 
10246 const char* CpSolverResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
10247 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
10248  while (!ctx->Done(&ptr)) {
10250  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
10251  CHK_(ptr);
10252  switch (tag >> 3) {
10253  // .operations_research.sat.CpSolverStatus status = 1;
10254  case 1:
10255  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
10256  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10257  CHK_(ptr);
10258  _internal_set_status(static_cast<::operations_research::sat::CpSolverStatus>(val));
10259  } else goto handle_unusual;
10260  continue;
10261  // repeated int64 solution = 2;
10262  case 2:
10263  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
10264  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution(), ptr, ctx);
10265  CHK_(ptr);
10266  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
10267  _internal_add_solution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10268  CHK_(ptr);
10269  } else goto handle_unusual;
10270  continue;
10271  // double objective_value = 3;
10272  case 3:
10273  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
10274  objective_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10275  ptr += sizeof(double);
10276  } else goto handle_unusual;
10277  continue;
10278  // double best_objective_bound = 4;
10279  case 4:
10280  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
10281  best_objective_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10282  ptr += sizeof(double);
10283  } else goto handle_unusual;
10284  continue;
10285  // bool all_solutions_were_found = 5;
10286  case 5:
10287  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
10288  all_solutions_were_found_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10289  CHK_(ptr);
10290  } else goto handle_unusual;
10291  continue;
10292  // int64 num_booleans = 10;
10293  case 10:
10294  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
10295  num_booleans_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10296  CHK_(ptr);
10297  } else goto handle_unusual;
10298  continue;
10299  // int64 num_conflicts = 11;
10300  case 11:
10301  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
10302  num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10303  CHK_(ptr);
10304  } else goto handle_unusual;
10305  continue;
10306  // int64 num_branches = 12;
10307  case 12:
10308  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
10309  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10310  CHK_(ptr);
10311  } else goto handle_unusual;
10312  continue;
10313  // int64 num_binary_propagations = 13;
10314  case 13:
10315  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
10316  num_binary_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10317  CHK_(ptr);
10318  } else goto handle_unusual;
10319  continue;
10320  // int64 num_integer_propagations = 14;
10321  case 14:
10322  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
10323  num_integer_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10324  CHK_(ptr);
10325  } else goto handle_unusual;
10326  continue;
10327  // double wall_time = 15;
10328  case 15:
10329  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
10330  wall_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10331  ptr += sizeof(double);
10332  } else goto handle_unusual;
10333  continue;
10334  // double user_time = 16;
10335  case 16:
10336  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
10337  user_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10338  ptr += sizeof(double);
10339  } else goto handle_unusual;
10340  continue;
10341  // double deterministic_time = 17;
10342  case 17:
10343  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
10344  deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10345  ptr += sizeof(double);
10346  } else goto handle_unusual;
10347  continue;
10348  // repeated int64 solution_lower_bounds = 18;
10349  case 18:
10350  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
10351  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_lower_bounds(), ptr, ctx);
10352  CHK_(ptr);
10353  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144) {
10354  _internal_add_solution_lower_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10355  CHK_(ptr);
10356  } else goto handle_unusual;
10357  continue;
10358  // repeated int64 solution_upper_bounds = 19;
10359  case 19:
10360  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
10361  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_upper_bounds(), ptr, ctx);
10362  CHK_(ptr);
10363  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152) {
10364  _internal_add_solution_upper_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10365  CHK_(ptr);
10366  } else goto handle_unusual;
10367  continue;
10368  // string solution_info = 20;
10369  case 20:
10370  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
10371  auto str = _internal_mutable_solution_info();
10372  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10373  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solution_info"));
10374  CHK_(ptr);
10375  } else goto handle_unusual;
10376  continue;
10377  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10378  case 21:
10379  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
10380  ptr -= 2;
10381  do {
10382  ptr += 2;
10383  ptr = ctx->ParseMessage(_internal_add_tightened_variables(), ptr);
10384  CHK_(ptr);
10385  if (!ctx->DataAvailable(ptr)) break;
10386  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr));
10387  } else goto handle_unusual;
10388  continue;
10389  // double primal_integral = 22;
10390  case 22:
10391  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
10392  primal_integral_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10393  ptr += sizeof(double);
10394  } else goto handle_unusual;
10395  continue;
10396  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10397  case 23:
10398  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
10399  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_sufficient_assumptions_for_infeasibility(), ptr, ctx);
10400  CHK_(ptr);
10401  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184) {
10402  _internal_add_sufficient_assumptions_for_infeasibility(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10403  CHK_(ptr);
10404  } else goto handle_unusual;
10405  continue;
10406  // int64 num_restarts = 24;
10407  case 24:
10408  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
10409  num_restarts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10410  CHK_(ptr);
10411  } else goto handle_unusual;
10412  continue;
10413  // int64 num_lp_iterations = 25;
10414  case 25:
10415  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
10416  num_lp_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10417  CHK_(ptr);
10418  } else goto handle_unusual;
10419  continue;
10420  default: {
10421  handle_unusual:
10422  if ((tag & 7) == 4 || tag == 0) {
10423  ctx->SetLastTag(tag);
10424  goto success;
10425  }
10426  ptr = UnknownFieldParse(tag,
10427  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
10428  ptr, ctx);
10429  CHK_(ptr != nullptr);
10430  continue;
10431  }
10432  } // switch
10433  } // while
10434 success:
10435  return ptr;
10436 failure:
10437  ptr = nullptr;
10438  goto success;
10439 #undef CHK_
10440 }
10441 
10442 ::PROTOBUF_NAMESPACE_ID::uint8* CpSolverResponse::_InternalSerialize(
10443  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
10444  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverResponse)
10445  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10446  (void) cached_has_bits;
10447 
10448  // .operations_research.sat.CpSolverStatus status = 1;
10449  if (this->status() != 0) {
10450  target = stream->EnsureSpace(target);
10451  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
10452  1, this->_internal_status(), target);
10453  }
10454 
10455  // repeated int64 solution = 2;
10456  {
10457  int byte_size = _solution_cached_byte_size_.load(std::memory_order_relaxed);
10458  if (byte_size > 0) {
10459  target = stream->WriteInt64Packed(
10460  2, _internal_solution(), byte_size, target);
10461  }
10462  }
10463 
10464  // double objective_value = 3;
10465  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
10466  target = stream->EnsureSpace(target);
10467  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_objective_value(), target);
10468  }
10469 
10470  // double best_objective_bound = 4;
10471  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
10472  target = stream->EnsureSpace(target);
10473  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_best_objective_bound(), target);
10474  }
10475 
10476  // bool all_solutions_were_found = 5;
10477  if (this->all_solutions_were_found() != 0) {
10478  target = stream->EnsureSpace(target);
10479  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_all_solutions_were_found(), target);
10480  }
10481 
10482  // int64 num_booleans = 10;
10483  if (this->num_booleans() != 0) {
10484  target = stream->EnsureSpace(target);
10485  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_num_booleans(), target);
10486  }
10487 
10488  // int64 num_conflicts = 11;
10489  if (this->num_conflicts() != 0) {
10490  target = stream->EnsureSpace(target);
10491  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_num_conflicts(), target);
10492  }
10493 
10494  // int64 num_branches = 12;
10495  if (this->num_branches() != 0) {
10496  target = stream->EnsureSpace(target);
10497  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(12, this->_internal_num_branches(), target);
10498  }
10499 
10500  // int64 num_binary_propagations = 13;
10501  if (this->num_binary_propagations() != 0) {
10502  target = stream->EnsureSpace(target);
10503  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(13, this->_internal_num_binary_propagations(), target);
10504  }
10505 
10506  // int64 num_integer_propagations = 14;
10507  if (this->num_integer_propagations() != 0) {
10508  target = stream->EnsureSpace(target);
10509  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(14, this->_internal_num_integer_propagations(), target);
10510  }
10511 
10512  // double wall_time = 15;
10513  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
10514  target = stream->EnsureSpace(target);
10515  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_wall_time(), target);
10516  }
10517 
10518  // double user_time = 16;
10519  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
10520  target = stream->EnsureSpace(target);
10521  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_user_time(), target);
10522  }
10523 
10524  // double deterministic_time = 17;
10525  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
10526  target = stream->EnsureSpace(target);
10527  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_deterministic_time(), target);
10528  }
10529 
10530  // repeated int64 solution_lower_bounds = 18;
10531  {
10532  int byte_size = _solution_lower_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10533  if (byte_size > 0) {
10534  target = stream->WriteInt64Packed(
10535  18, _internal_solution_lower_bounds(), byte_size, target);
10536  }
10537  }
10538 
10539  // repeated int64 solution_upper_bounds = 19;
10540  {
10541  int byte_size = _solution_upper_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10542  if (byte_size > 0) {
10543  target = stream->WriteInt64Packed(
10544  19, _internal_solution_upper_bounds(), byte_size, target);
10545  }
10546  }
10547 
10548  // string solution_info = 20;
10549  if (this->solution_info().size() > 0) {
10550  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10551  this->_internal_solution_info().data(), static_cast<int>(this->_internal_solution_info().length()),
10552  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10553  "operations_research.sat.CpSolverResponse.solution_info");
10554  target = stream->WriteStringMaybeAliased(
10555  20, this->_internal_solution_info(), target);
10556  }
10557 
10558  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10559  for (unsigned int i = 0,
10560  n = static_cast<unsigned int>(this->_internal_tightened_variables_size()); i < n; i++) {
10561  target = stream->EnsureSpace(target);
10562  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10563  InternalWriteMessage(21, this->_internal_tightened_variables(i), target, stream);
10564  }
10565 
10566  // double primal_integral = 22;
10567  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
10568  target = stream->EnsureSpace(target);
10569  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_primal_integral(), target);
10570  }
10571 
10572  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10573  {
10574  int byte_size = _sufficient_assumptions_for_infeasibility_cached_byte_size_.load(std::memory_order_relaxed);
10575  if (byte_size > 0) {
10576  target = stream->WriteInt32Packed(
10577  23, _internal_sufficient_assumptions_for_infeasibility(), byte_size, target);
10578  }
10579  }
10580 
10581  // int64 num_restarts = 24;
10582  if (this->num_restarts() != 0) {
10583  target = stream->EnsureSpace(target);
10584  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(24, this->_internal_num_restarts(), target);
10585  }
10586 
10587  // int64 num_lp_iterations = 25;
10588  if (this->num_lp_iterations() != 0) {
10589  target = stream->EnsureSpace(target);
10590  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(25, this->_internal_num_lp_iterations(), target);
10591  }
10592 
10593  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10594  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
10595  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
10596  }
10597  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverResponse)
10598  return target;
10599 }
10600 
10601 size_t CpSolverResponse::ByteSizeLong() const {
10602 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverResponse)
10603  size_t total_size = 0;
10604 
10605  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10606  // Prevent compiler warnings about cached_has_bits being unused
10607  (void) cached_has_bits;
10608 
10609  // repeated int64 solution = 2;
10610  {
10611  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10612  Int64Size(this->solution_);
10613  if (data_size > 0) {
10614  total_size += 1 +
10615  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10616  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10617  }
10618  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10619  _solution_cached_byte_size_.store(cached_size,
10620  std::memory_order_relaxed);
10621  total_size += data_size;
10622  }
10623 
10624  // repeated int64 solution_lower_bounds = 18;
10625  {
10626  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10627  Int64Size(this->solution_lower_bounds_);
10628  if (data_size > 0) {
10629  total_size += 2 +
10630  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10631  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10632  }
10633  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10634  _solution_lower_bounds_cached_byte_size_.store(cached_size,
10635  std::memory_order_relaxed);
10636  total_size += data_size;
10637  }
10638 
10639  // repeated int64 solution_upper_bounds = 19;
10640  {
10641  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10642  Int64Size(this->solution_upper_bounds_);
10643  if (data_size > 0) {
10644  total_size += 2 +
10645  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10646  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10647  }
10648  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10649  _solution_upper_bounds_cached_byte_size_.store(cached_size,
10650  std::memory_order_relaxed);
10651  total_size += data_size;
10652  }
10653 
10654  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10655  total_size += 2UL * this->_internal_tightened_variables_size();
10656  for (const auto& msg : this->tightened_variables_) {
10657  total_size +=
10658  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10659  }
10660 
10661  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10662  {
10663  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10664  Int32Size(this->sufficient_assumptions_for_infeasibility_);
10665  if (data_size > 0) {
10666  total_size += 2 +
10667  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10668  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10669  }
10670  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10671  _sufficient_assumptions_for_infeasibility_cached_byte_size_.store(cached_size,
10672  std::memory_order_relaxed);
10673  total_size += data_size;
10674  }
10675 
10676  // string solution_info = 20;
10677  if (this->solution_info().size() > 0) {
10678  total_size += 2 +
10679  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10680  this->_internal_solution_info());
10681  }
10682 
10683  // double objective_value = 3;
10684  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
10685  total_size += 1 + 8;
10686  }
10687 
10688  // .operations_research.sat.CpSolverStatus status = 1;
10689  if (this->status() != 0) {
10690  total_size += 1 +
10691  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status());
10692  }
10693 
10694  // bool all_solutions_were_found = 5;
10695  if (this->all_solutions_were_found() != 0) {
10696  total_size += 1 + 1;
10697  }
10698 
10699  // double best_objective_bound = 4;
10700  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
10701  total_size += 1 + 8;
10702  }
10703 
10704  // int64 num_booleans = 10;
10705  if (this->num_booleans() != 0) {
10706  total_size += 1 +
10707  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10708  this->_internal_num_booleans());
10709  }
10710 
10711  // int64 num_conflicts = 11;
10712  if (this->num_conflicts() != 0) {
10713  total_size += 1 +
10714  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10715  this->_internal_num_conflicts());
10716  }
10717 
10718  // int64 num_branches = 12;
10719  if (this->num_branches() != 0) {
10720  total_size += 1 +
10721  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10722  this->_internal_num_branches());
10723  }
10724 
10725  // int64 num_binary_propagations = 13;
10726  if (this->num_binary_propagations() != 0) {
10727  total_size += 1 +
10728  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10729  this->_internal_num_binary_propagations());
10730  }
10731 
10732  // int64 num_integer_propagations = 14;
10733  if (this->num_integer_propagations() != 0) {
10734  total_size += 1 +
10735  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10736  this->_internal_num_integer_propagations());
10737  }
10738 
10739  // double wall_time = 15;
10740  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
10741  total_size += 1 + 8;
10742  }
10743 
10744  // double user_time = 16;
10745  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
10746  total_size += 2 + 8;
10747  }
10748 
10749  // double deterministic_time = 17;
10750  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
10751  total_size += 2 + 8;
10752  }
10753 
10754  // double primal_integral = 22;
10755  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
10756  total_size += 2 + 8;
10757  }
10758 
10759  // int64 num_restarts = 24;
10760  if (this->num_restarts() != 0) {
10761  total_size += 2 +
10762  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10763  this->_internal_num_restarts());
10764  }
10765 
10766  // int64 num_lp_iterations = 25;
10767  if (this->num_lp_iterations() != 0) {
10768  total_size += 2 +
10769  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10770  this->_internal_num_lp_iterations());
10771  }
10772 
10773  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10774  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10775  _internal_metadata_, total_size, &_cached_size_);
10776  }
10777  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10778  SetCachedSize(cached_size);
10779  return total_size;
10780 }
10781 
10782 void CpSolverResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10783 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpSolverResponse)
10784  GOOGLE_DCHECK_NE(&from, this);
10785  const CpSolverResponse* source =
10786  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpSolverResponse>(
10787  &from);
10788  if (source == nullptr) {
10789  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpSolverResponse)
10790  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
10791  } else {
10792  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpSolverResponse)
10793  MergeFrom(*source);
10794  }
10795 }
10796 
10797 void CpSolverResponse::MergeFrom(const CpSolverResponse& from) {
10798 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverResponse)
10799  GOOGLE_DCHECK_NE(&from, this);
10800  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10801  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10802  (void) cached_has_bits;
10803 
10804  solution_.MergeFrom(from.solution_);
10805  solution_lower_bounds_.MergeFrom(from.solution_lower_bounds_);
10806  solution_upper_bounds_.MergeFrom(from.solution_upper_bounds_);
10807  tightened_variables_.MergeFrom(from.tightened_variables_);
10808  sufficient_assumptions_for_infeasibility_.MergeFrom(from.sufficient_assumptions_for_infeasibility_);
10809  if (from.solution_info().size() > 0) {
10810  _internal_set_solution_info(from._internal_solution_info());
10811  }
10812  if (!(from.objective_value() <= 0 && from.objective_value() >= 0)) {
10813  _internal_set_objective_value(from._internal_objective_value());
10814  }
10815  if (from.status() != 0) {
10816  _internal_set_status(from._internal_status());
10817  }
10818  if (from.all_solutions_were_found() != 0) {
10819  _internal_set_all_solutions_were_found(from._internal_all_solutions_were_found());
10820  }
10821  if (!(from.best_objective_bound() <= 0 && from.best_objective_bound() >= 0)) {
10822  _internal_set_best_objective_bound(from._internal_best_objective_bound());
10823  }
10824  if (from.num_booleans() != 0) {
10825  _internal_set_num_booleans(from._internal_num_booleans());
10826  }
10827  if (from.num_conflicts() != 0) {
10828  _internal_set_num_conflicts(from._internal_num_conflicts());
10829  }
10830  if (from.num_branches() != 0) {
10831  _internal_set_num_branches(from._internal_num_branches());
10832  }
10833  if (from.num_binary_propagations() != 0) {
10834  _internal_set_num_binary_propagations(from._internal_num_binary_propagations());
10835  }
10836  if (from.num_integer_propagations() != 0) {
10837  _internal_set_num_integer_propagations(from._internal_num_integer_propagations());
10838  }
10839  if (!(from.wall_time() <= 0 && from.wall_time() >= 0)) {
10840  _internal_set_wall_time(from._internal_wall_time());
10841  }
10842  if (!(from.user_time() <= 0 && from.user_time() >= 0)) {
10843  _internal_set_user_time(from._internal_user_time());
10844  }
10845  if (!(from.deterministic_time() <= 0 && from.deterministic_time() >= 0)) {
10846  _internal_set_deterministic_time(from._internal_deterministic_time());
10847  }
10848  if (!(from.primal_integral() <= 0 && from.primal_integral() >= 0)) {
10849  _internal_set_primal_integral(from._internal_primal_integral());
10850  }
10851  if (from.num_restarts() != 0) {
10852  _internal_set_num_restarts(from._internal_num_restarts());
10853  }
10854  if (from.num_lp_iterations() != 0) {
10855  _internal_set_num_lp_iterations(from._internal_num_lp_iterations());
10856  }
10857 }
10858 
10859 void CpSolverResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
10860 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpSolverResponse)
10861  if (&from == this) return;
10862  Clear();
10863  MergeFrom(from);
10864 }
10865 
10866 void CpSolverResponse::CopyFrom(const CpSolverResponse& from) {
10867 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverResponse)
10868  if (&from == this) return;
10869  Clear();
10870  MergeFrom(from);
10871 }
10872 
10873 bool CpSolverResponse::IsInitialized() const {
10874  return true;
10875 }
10876 
10877 void CpSolverResponse::InternalSwap(CpSolverResponse* other) {
10878  using std::swap;
10879  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
10880  solution_.InternalSwap(&other->solution_);
10881  solution_lower_bounds_.InternalSwap(&other->solution_lower_bounds_);
10882  solution_upper_bounds_.InternalSwap(&other->solution_upper_bounds_);
10883  tightened_variables_.InternalSwap(&other->tightened_variables_);
10884  sufficient_assumptions_for_infeasibility_.InternalSwap(&other->sufficient_assumptions_for_infeasibility_);
10885  solution_info_.Swap(&other->solution_info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10886  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10887  PROTOBUF_FIELD_OFFSET(CpSolverResponse, num_lp_iterations_)
10888  + sizeof(CpSolverResponse::num_lp_iterations_)
10889  - PROTOBUF_FIELD_OFFSET(CpSolverResponse, objective_value_)>(
10890  reinterpret_cast<char*>(&objective_value_),
10891  reinterpret_cast<char*>(&other->objective_value_));
10892 }
10893 
10894 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverResponse::GetMetadata() const {
10895  return GetMetadataStatic();
10896 }
10897 
10898 
10899 // @@protoc_insertion_point(namespace_scope)
10900 } // namespace sat
10901 } // namespace operations_research
10902 PROTOBUF_NAMESPACE_OPEN
10903 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena* arena) {
10904  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerVariableProto >(arena);
10905 }
10906 template<> PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena* arena) {
10907  return Arena::CreateMessageInternal< ::operations_research::sat::BoolArgumentProto >(arena);
10908 }
10909 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena* arena) {
10910  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerArgumentProto >(arena);
10911 }
10912 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena* arena) {
10913  return Arena::CreateMessageInternal< ::operations_research::sat::LinearExpressionProto >(arena);
10914 }
10915 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena* arena) {
10916  return Arena::CreateMessageInternal< ::operations_research::sat::LinearArgumentProto >(arena);
10917 }
10918 template<> PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena* arena) {
10919  return Arena::CreateMessageInternal< ::operations_research::sat::AllDifferentConstraintProto >(arena);
10920 }
10921 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena* arena) {
10922  return Arena::CreateMessageInternal< ::operations_research::sat::LinearConstraintProto >(arena);
10923 }
10924 template<> PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena* arena) {
10925  return Arena::CreateMessageInternal< ::operations_research::sat::ElementConstraintProto >(arena);
10926 }
10927 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena* arena) {
10928  return Arena::CreateMessageInternal< ::operations_research::sat::IntervalConstraintProto >(arena);
10929 }
10930 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena* arena) {
10931  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlapConstraintProto >(arena);
10932 }
10933 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena* arena) {
10934  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlap2DConstraintProto >(arena);
10935 }
10936 template<> PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena* arena) {
10937  return Arena::CreateMessageInternal< ::operations_research::sat::CumulativeConstraintProto >(arena);
10938 }
10939 template<> PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena* arena) {
10940  return Arena::CreateMessageInternal< ::operations_research::sat::ReservoirConstraintProto >(arena);
10941 }
10942 template<> PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena* arena) {
10943  return Arena::CreateMessageInternal< ::operations_research::sat::CircuitConstraintProto >(arena);
10944 }
10945 template<> PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena* arena) {
10946  return Arena::CreateMessageInternal< ::operations_research::sat::RoutesConstraintProto >(arena);
10947 }
10948 template<> PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena* arena) {
10949  return Arena::CreateMessageInternal< ::operations_research::sat::TableConstraintProto >(arena);
10950 }
10951 template<> PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena* arena) {
10952  return Arena::CreateMessageInternal< ::operations_research::sat::InverseConstraintProto >(arena);
10953 }
10954 template<> PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena* arena) {
10955  return Arena::CreateMessageInternal< ::operations_research::sat::AutomatonConstraintProto >(arena);
10956 }
10957 template<> PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena* arena) {
10958  return Arena::CreateMessageInternal< ::operations_research::sat::ConstraintProto >(arena);
10959 }
10960 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena* arena) {
10961  return Arena::CreateMessageInternal< ::operations_research::sat::CpObjectiveProto >(arena);
10962 }
10963 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena* arena) {
10964  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(arena);
10965 }
10966 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena* arena) {
10967  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto >(arena);
10968 }
10969 template<> PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena* arena) {
10970  return Arena::CreateMessageInternal< ::operations_research::sat::PartialVariableAssignment >(arena);
10971 }
10972 template<> PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto* Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena* arena) {
10973  return Arena::CreateMessageInternal< ::operations_research::sat::SparsePermutationProto >(arena);
10974 }
10975 template<> PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto* Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena* arena) {
10976  return Arena::CreateMessageInternal< ::operations_research::sat::DenseMatrixProto >(arena);
10977 }
10978 template<> PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto* Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena* arena) {
10979  return Arena::CreateMessageInternal< ::operations_research::sat::SymmetryProto >(arena);
10980 }
10981 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena* arena) {
10982  return Arena::CreateMessageInternal< ::operations_research::sat::CpModelProto >(arena);
10983 }
10984 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena* arena) {
10985  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverResponse >(arena);
10986 }
10987 PROTOBUF_NAMESPACE_CLOSE
10988 
10989 // @@protoc_insertion_point(global_scope)
10990 #include <google/protobuf/port_undef.inc>
const std::vector< IntVar * > vars_
Definition: alldiff_cst.cc:43
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< AllDifferentConstraintProto > _instance
Definition: cp_model.pb.cc:67
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< AutomatonConstraintProto > _instance
Definition: cp_model.pb.cc:115
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< BoolArgumentProto > _instance
Definition: cp_model.pb.cc:51
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CircuitConstraintProto > _instance
Definition: cp_model.pb.cc:99
static const ::operations_research::sat::IntegerArgumentProto & int_mod(const ConstraintProto *msg)
static const ::operations_research::sat::CumulativeConstraintProto & cumulative(const ConstraintProto *msg)
static const ::operations_research::sat::TableConstraintProto & table(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_max(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_min(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_and(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_prod(const ConstraintProto *msg)
static const ::operations_research::sat::InverseConstraintProto & inverse(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & exactly_one(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_div(const ConstraintProto *msg)
static const ::operations_research::sat::LinearConstraintProto & linear(const ConstraintProto *msg)
static const ::operations_research::sat::RoutesConstraintProto & routes(const ConstraintProto *msg)
static const ::operations_research::sat::ElementConstraintProto & element(const ConstraintProto *msg)
static const ::operations_research::sat::ReservoirConstraintProto & reservoir(const ConstraintProto *msg)
static const ::operations_research::sat::AutomatonConstraintProto & automaton(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_or(const ConstraintProto *msg)
static const ::operations_research::sat::CircuitConstraintProto & circuit(const ConstraintProto *msg)
static const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d(const ConstraintProto *msg)
static const ::operations_research::sat::NoOverlapConstraintProto & no_overlap(const ConstraintProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_max(const ConstraintProto *msg)
static const ::operations_research::sat::AllDifferentConstraintProto & all_diff(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & bool_xor(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_min(const ConstraintProto *msg)
static const ::operations_research::sat::IntervalConstraintProto & interval(const ConstraintProto *msg)
static const ::operations_research::sat::BoolArgumentProto & at_most_one(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ConstraintProto > _instance
Definition: cp_model.pb.cc:119
static const ::operations_research::sat::SymmetryProto & symmetry(const CpModelProto *msg)
static const ::operations_research::sat::PartialVariableAssignment & solution_hint(const CpModelProto *msg)
static const ::operations_research::sat::CpObjectiveProto & objective(const CpModelProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpModelProto > _instance
Definition: cp_model.pb.cc:151
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpObjectiveProto > _instance
Definition: cp_model.pb.cc:123
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpSolverResponse > _instance
Definition: cp_model.pb.cc:155
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CumulativeConstraintProto > _instance
Definition: cp_model.pb.cc:91
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DecisionStrategyProto_AffineTransformation > _instance
Definition: cp_model.pb.cc:127
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DecisionStrategyProto > _instance
Definition: cp_model.pb.cc:131
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DenseMatrixProto > _instance
Definition: cp_model.pb.cc:143
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ElementConstraintProto > _instance
Definition: cp_model.pb.cc:75
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntegerArgumentProto > _instance
Definition: cp_model.pb.cc:55
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntegerVariableProto > _instance
Definition: cp_model.pb.cc:47
static const ::operations_research::sat::LinearExpressionProto & start_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & end_view(const IntervalConstraintProto *msg)
static const ::operations_research::sat::LinearExpressionProto & size_view(const IntervalConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntervalConstraintProto > _instance
Definition: cp_model.pb.cc:79
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< InverseConstraintProto > _instance
Definition: cp_model.pb.cc:111
static const ::operations_research::sat::LinearExpressionProto & target(const LinearArgumentProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearArgumentProto > _instance
Definition: cp_model.pb.cc:63
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearConstraintProto > _instance
Definition: cp_model.pb.cc:71
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearExpressionProto > _instance
Definition: cp_model.pb.cc:59
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< NoOverlap2DConstraintProto > _instance
Definition: cp_model.pb.cc:87
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< NoOverlapConstraintProto > _instance
Definition: cp_model.pb.cc:83
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< PartialVariableAssignment > _instance
Definition: cp_model.pb.cc:135
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ReservoirConstraintProto > _instance
Definition: cp_model.pb.cc:95
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< RoutesConstraintProto > _instance
Definition: cp_model.pb.cc:103
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< SparsePermutationProto > _instance
Definition: cp_model.pb.cc:139
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< SymmetryProto > _instance
Definition: cp_model.pb.cc:147
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< TableConstraintProto > _instance
Definition: cp_model.pb.cc:107
static void InitDefaultsscc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:352
PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse * Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:296
static void InitDefaultsscc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:458
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:282
static void InitDefaultsscc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:286
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_deps[1]
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto
#define CHK_(x)
PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:442
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:336
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:468
PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena *arena)
static void InitDefaultsscc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:378
static void InitDefaultsscc_info_DenseMatrixProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:326
static void InitDefaultsscc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:419
static void InitDefaultsscc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:497
static void InitDefaultsscc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:432
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_sccs[28]
static void InitDefaultsscc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:339
static void InitDefaultsscc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:313
PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:309
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 6 > scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:250
static void InitDefaultsscc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:172
PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:455
PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto * Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:269
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:362
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:548
PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:429
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:169
static void InitDefaultsscc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:405
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[28]
Definition: cp_model.pb.cc:551
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:375
PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena *arena)
static void InitDefaultsscc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:365
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:553
static void InitDefaultsscc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:198
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:388
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:208
PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:481
static void InitDefaultsscc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:471
PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment * Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena *arena)
static void InitDefaultsscc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:445
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: cp_model.pb.cc:860
static bool dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once
static void InitDefaultsscc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:523
PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:259
PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 16 > scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:221
static void InitDefaultsscc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:159
static void InitDefaultsscc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:538
PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:323
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:185
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 2 > scc_info_SymmetryProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:533
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:182
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:494
PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:392
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:520
PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:349
PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena *arena)
static void InitDefaultsscc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:240
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:402
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 1 > scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:415
static void InitDefaultsscc_info_SparsePermutationProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:510
static void InitDefaultsscc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:484
static void InitDefaultsscc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:272
PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto * Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena *arena)
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:507
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3]
Definition: cp_model.pb.cc:552
static void InitDefaultsscc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:211
PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena *arena)
PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 0 > scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:195
static void InitDefaultsscc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:299
PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto * Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena *arena)
const std::string name
int64 value
IntVar * var
Definition: expr_array.cc:1858
unsigned int uint32
int int32
uint64_t uint64
unsigned char uint8
const int64 offset_
Definition: interval.cc:2076
class operations_research::sat::SparsePermutationProtoDefaultTypeInternal _SparsePermutationProto_default_instance_
Definition: cp_model.pb.h:135
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CpSolverStatus_descriptor()
class operations_research::sat::InverseConstraintProtoDefaultTypeInternal _InverseConstraintProto_default_instance_
Definition: cp_model.pb.h:108
class operations_research::sat::CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_
Definition: cp_model.pb.h:78
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_DomainReductionStrategy_descriptor()
class operations_research::sat::LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_
Definition: cp_model.pb.h:111
class operations_research::sat::IntegerArgumentProtoDefaultTypeInternal _IntegerArgumentProto_default_instance_
Definition: cp_model.pb.h:99
class operations_research::sat::IntegerVariableProtoDefaultTypeInternal _IntegerVariableProto_default_instance_
Definition: cp_model.pb.h:102
class operations_research::sat::CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_
Definition: cp_model.pb.h:75
class operations_research::sat::DecisionStrategyProto_AffineTransformationDefaultTypeInternal _DecisionStrategyProto_AffineTransformation_default_instance_
Definition: cp_model.pb.h:90
class operations_research::sat::AllDifferentConstraintProtoDefaultTypeInternal _AllDifferentConstraintProto_default_instance_
Definition: cp_model.pb.h:60
class operations_research::sat::NoOverlap2DConstraintProtoDefaultTypeInternal _NoOverlap2DConstraintProto_default_instance_
Definition: cp_model.pb.h:120
class operations_research::sat::IntervalConstraintProtoDefaultTypeInternal _IntervalConstraintProto_default_instance_
Definition: cp_model.pb.h:105
class operations_research::sat::RoutesConstraintProtoDefaultTypeInternal _RoutesConstraintProto_default_instance_
Definition: cp_model.pb.h:132
class operations_research::sat::BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_
Definition: cp_model.pb.h:66
class operations_research::sat::DecisionStrategyProtoDefaultTypeInternal _DecisionStrategyProto_default_instance_
Definition: cp_model.pb.h:87
class operations_research::sat::LinearConstraintProtoDefaultTypeInternal _LinearConstraintProto_default_instance_
Definition: cp_model.pb.h:114
class operations_research::sat::CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_
Definition: cp_model.pb.h:81
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_VariableSelectionStrategy_descriptor()
class operations_research::sat::NoOverlapConstraintProtoDefaultTypeInternal _NoOverlapConstraintProto_default_instance_
Definition: cp_model.pb.h:123
class operations_research::sat::ElementConstraintProtoDefaultTypeInternal _ElementConstraintProto_default_instance_
Definition: cp_model.pb.h:96
class operations_research::sat::SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_
Definition: cp_model.pb.h:138
class operations_research::sat::AutomatonConstraintProtoDefaultTypeInternal _AutomatonConstraintProto_default_instance_
Definition: cp_model.pb.h:63
class operations_research::sat::LinearExpressionProtoDefaultTypeInternal _LinearExpressionProto_default_instance_
Definition: cp_model.pb.h:117
bool DecisionStrategyProto_VariableSelectionStrategy_IsValid(int value)
class operations_research::sat::DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_
Definition: cp_model.pb.h:93
class operations_research::sat::PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
Definition: cp_model.pb.h:126
bool CpSolverStatus_IsValid(int value)
class operations_research::sat::CircuitConstraintProtoDefaultTypeInternal _CircuitConstraintProto_default_instance_
Definition: cp_model.pb.h:69
bool DecisionStrategyProto_DomainReductionStrategy_IsValid(int value)
class operations_research::sat::TableConstraintProtoDefaultTypeInternal _TableConstraintProto_default_instance_
Definition: cp_model.pb.h:141
class operations_research::sat::CumulativeConstraintProtoDefaultTypeInternal _CumulativeConstraintProto_default_instance_
Definition: cp_model.pb.h:84
class operations_research::sat::ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_
Definition: cp_model.pb.h:72
class operations_research::sat::ReservoirConstraintProtoDefaultTypeInternal _ReservoirConstraintProto_default_instance_
Definition: cp_model.pb.h:129
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
PyObject * from(const Type &val)
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
int index
Definition: pack.cc:508
IntervalVar * interval
Definition: resource.cc:98
int64 capacity
IntVar *const objective_
Definition: search.cc:2951
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: cp_model.pb.h:54