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_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
27 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
28 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto;
29 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
30 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
31 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto;
32 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
33 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto;
34 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
35 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
36 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto;
37 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
38 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
39 extern PROTOBUF_INTERNAL_EXPORT_ortools_2fsat_2fcp_5fmodel_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto;
40 namespace operations_research {
41 namespace sat {
43  public:
44  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntegerVariableProto> _instance;
47  public:
48  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<BoolArgumentProto> _instance;
51  public:
52  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntegerArgumentProto> _instance;
55  public:
56  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearExpressionProto> _instance;
59  public:
60  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearArgumentProto> _instance;
63  public:
64  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AllDifferentConstraintProto> _instance;
67  public:
68  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<LinearConstraintProto> _instance;
71  public:
72  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ElementConstraintProto> _instance;
75  public:
76  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<IntervalConstraintProto> _instance;
79  public:
80  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NoOverlapConstraintProto> _instance;
83  public:
84  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<NoOverlap2DConstraintProto> _instance;
87  public:
88  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CumulativeConstraintProto> _instance;
91  public:
92  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ReservoirConstraintProto> _instance;
95  public:
96  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CircuitConstraintProto> _instance;
99  public:
100  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RoutesConstraintProto> _instance;
103  public:
104  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<TableConstraintProto> _instance;
107  public:
108  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<InverseConstraintProto> _instance;
111  public:
112  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<AutomatonConstraintProto> _instance;
115  public:
116  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<ConstraintProto> _instance;
119  public:
120  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpObjectiveProto> _instance;
123  public:
124  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DecisionStrategyProto_AffineTransformation> _instance;
127  public:
128  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<DecisionStrategyProto> _instance;
131  public:
132  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<PartialVariableAssignment> _instance;
135  public:
136  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpModelProto> _instance;
139  public:
140  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<CpSolverResponse> _instance;
142 } // namespace sat
143 } // namespace operations_research
145  GOOGLE_PROTOBUF_VERIFY_VERSION;
146 
147  {
149  new (ptr) ::operations_research::sat::AllDifferentConstraintProto();
150  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
151  }
152 }
153 
154 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
155  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
156 
158  GOOGLE_PROTOBUF_VERIFY_VERSION;
159 
160  {
162  new (ptr) ::operations_research::sat::AutomatonConstraintProto();
163  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
164  }
165 }
166 
167 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
168  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
169 
171  GOOGLE_PROTOBUF_VERIFY_VERSION;
172 
173  {
175  new (ptr) ::operations_research::sat::BoolArgumentProto();
176  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
177  }
178 }
179 
180 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
181  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
182 
184  GOOGLE_PROTOBUF_VERIFY_VERSION;
185 
186  {
188  new (ptr) ::operations_research::sat::CircuitConstraintProto();
189  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
190  }
191 }
192 
193 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
194  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
195 
197  GOOGLE_PROTOBUF_VERIFY_VERSION;
198 
199  {
201  new (ptr) ::operations_research::sat::ConstraintProto();
202  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
203  }
204 }
205 
206 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<16> scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
207  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 16, 0, InitDefaultsscc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
224 
226  GOOGLE_PROTOBUF_VERIFY_VERSION;
227 
228  {
230  new (ptr) ::operations_research::sat::CpModelProto();
231  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
232  }
233 }
234 
235 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<5> scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto =
236  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 5, 0, InitDefaultsscc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
242 
244  GOOGLE_PROTOBUF_VERIFY_VERSION;
245 
246  {
248  new (ptr) ::operations_research::sat::CpObjectiveProto();
249  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
250  }
251 }
252 
253 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto =
254  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
255 
257  GOOGLE_PROTOBUF_VERIFY_VERSION;
258 
259  {
261  new (ptr) ::operations_research::sat::CpSolverResponse();
262  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
263  }
264 }
265 
266 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto =
267  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto}, {
269 
271  GOOGLE_PROTOBUF_VERIFY_VERSION;
272 
273  {
275  new (ptr) ::operations_research::sat::CumulativeConstraintProto();
276  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
277  }
278 }
279 
280 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
281  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
282 
284  GOOGLE_PROTOBUF_VERIFY_VERSION;
285 
286  {
288  new (ptr) ::operations_research::sat::DecisionStrategyProto();
289  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
290  }
291 }
292 
293 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto =
294  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
296 
298  GOOGLE_PROTOBUF_VERIFY_VERSION;
299 
300  {
302  new (ptr) ::operations_research::sat::DecisionStrategyProto_AffineTransformation();
303  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
304  }
305 }
306 
308  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
309 
311  GOOGLE_PROTOBUF_VERIFY_VERSION;
312 
313  {
315  new (ptr) ::operations_research::sat::ElementConstraintProto();
316  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
317  }
318 }
319 
320 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
321  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
322 
324  GOOGLE_PROTOBUF_VERIFY_VERSION;
325 
326  {
328  new (ptr) ::operations_research::sat::IntegerArgumentProto();
329  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
330  }
331 }
332 
333 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
334  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
335 
337  GOOGLE_PROTOBUF_VERIFY_VERSION;
338 
339  {
341  new (ptr) ::operations_research::sat::IntegerVariableProto();
342  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
343  }
344 }
345 
346 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto =
347  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
348 
350  GOOGLE_PROTOBUF_VERIFY_VERSION;
351 
352  {
354  new (ptr) ::operations_research::sat::IntervalConstraintProto();
355  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
356  }
357 }
358 
359 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
360  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
362 
364  GOOGLE_PROTOBUF_VERIFY_VERSION;
365 
366  {
368  new (ptr) ::operations_research::sat::InverseConstraintProto();
369  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
370  }
371 }
372 
373 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
374  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
375 
377  GOOGLE_PROTOBUF_VERIFY_VERSION;
378 
379  {
381  new (ptr) ::operations_research::sat::LinearArgumentProto();
382  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
383  }
384 }
385 
386 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto =
387  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {
389 
391  GOOGLE_PROTOBUF_VERIFY_VERSION;
392 
393  {
395  new (ptr) ::operations_research::sat::LinearConstraintProto();
396  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
397  }
398 }
399 
400 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
401  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
402 
404  GOOGLE_PROTOBUF_VERIFY_VERSION;
405 
406  {
408  new (ptr) ::operations_research::sat::LinearExpressionProto();
409  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
410  }
411 }
412 
413 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto =
414  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
415 
417  GOOGLE_PROTOBUF_VERIFY_VERSION;
418 
419  {
421  new (ptr) ::operations_research::sat::NoOverlap2DConstraintProto();
422  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
423  }
424 }
425 
426 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
427  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
428 
430  GOOGLE_PROTOBUF_VERIFY_VERSION;
431 
432  {
434  new (ptr) ::operations_research::sat::NoOverlapConstraintProto();
435  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
436  }
437 }
438 
439 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
440  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
441 
443  GOOGLE_PROTOBUF_VERIFY_VERSION;
444 
445  {
447  new (ptr) ::operations_research::sat::PartialVariableAssignment();
448  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
449  }
450 }
451 
452 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto =
453  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
454 
456  GOOGLE_PROTOBUF_VERIFY_VERSION;
457 
458  {
460  new (ptr) ::operations_research::sat::ReservoirConstraintProto();
461  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
462  }
463 }
464 
465 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
466  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
467 
469  GOOGLE_PROTOBUF_VERIFY_VERSION;
470 
471  {
473  new (ptr) ::operations_research::sat::RoutesConstraintProto();
474  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
475  }
476 }
477 
478 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
479  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
480 
482  GOOGLE_PROTOBUF_VERIFY_VERSION;
483 
484  {
486  new (ptr) ::operations_research::sat::TableConstraintProto();
487  ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
488  }
489 }
490 
491 ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto =
492  {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto}, {}};
493 
494 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[25];
495 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3];
496 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto = nullptr;
497 
499  ~0u, // no _has_bits_
500  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, _internal_metadata_),
501  ~0u, // no _extensions_
502  ~0u, // no _oneof_case_
503  ~0u, // no _weak_field_map_
504  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, name_),
505  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, domain_),
506  ~0u, // no _has_bits_
507  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, _internal_metadata_),
508  ~0u, // no _extensions_
509  ~0u, // no _oneof_case_
510  ~0u, // no _weak_field_map_
511  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, literals_),
512  ~0u, // no _has_bits_
513  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, _internal_metadata_),
514  ~0u, // no _extensions_
515  ~0u, // no _oneof_case_
516  ~0u, // no _weak_field_map_
517  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, target_),
518  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, vars_),
519  ~0u, // no _has_bits_
520  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, _internal_metadata_),
521  ~0u, // no _extensions_
522  ~0u, // no _oneof_case_
523  ~0u, // no _weak_field_map_
524  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, vars_),
525  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, coeffs_),
526  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, offset_),
527  ~0u, // no _has_bits_
528  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, _internal_metadata_),
529  ~0u, // no _extensions_
530  ~0u, // no _oneof_case_
531  ~0u, // no _weak_field_map_
532  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, target_),
533  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, exprs_),
534  ~0u, // no _has_bits_
535  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, _internal_metadata_),
536  ~0u, // no _extensions_
537  ~0u, // no _oneof_case_
538  ~0u, // no _weak_field_map_
539  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, vars_),
540  ~0u, // no _has_bits_
541  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, _internal_metadata_),
542  ~0u, // no _extensions_
543  ~0u, // no _oneof_case_
544  ~0u, // no _weak_field_map_
545  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, vars_),
546  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, coeffs_),
547  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, domain_),
548  ~0u, // no _has_bits_
549  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, _internal_metadata_),
550  ~0u, // no _extensions_
551  ~0u, // no _oneof_case_
552  ~0u, // no _weak_field_map_
553  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, index_),
554  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, target_),
555  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, vars_),
556  ~0u, // no _has_bits_
557  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, _internal_metadata_),
558  ~0u, // no _extensions_
559  ~0u, // no _oneof_case_
560  ~0u, // no _weak_field_map_
561  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_),
562  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_),
563  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_),
564  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_view_),
565  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_view_),
566  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_view_),
567  ~0u, // no _has_bits_
568  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, _internal_metadata_),
569  ~0u, // no _extensions_
570  ~0u, // no _oneof_case_
571  ~0u, // no _weak_field_map_
572  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, intervals_),
573  ~0u, // no _has_bits_
574  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, _internal_metadata_),
575  ~0u, // no _extensions_
576  ~0u, // no _oneof_case_
577  ~0u, // no _weak_field_map_
578  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, x_intervals_),
579  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, y_intervals_),
580  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, boxes_with_null_area_can_overlap_),
581  ~0u, // no _has_bits_
582  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, _internal_metadata_),
583  ~0u, // no _extensions_
584  ~0u, // no _oneof_case_
585  ~0u, // no _weak_field_map_
586  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, capacity_),
587  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, intervals_),
588  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, demands_),
589  ~0u, // no _has_bits_
590  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, _internal_metadata_),
591  ~0u, // no _extensions_
592  ~0u, // no _oneof_case_
593  ~0u, // no _weak_field_map_
594  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, min_level_),
595  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, max_level_),
596  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, times_),
597  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, demands_),
598  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, actives_),
599  ~0u, // no _has_bits_
600  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, _internal_metadata_),
601  ~0u, // no _extensions_
602  ~0u, // no _oneof_case_
603  ~0u, // no _weak_field_map_
604  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, tails_),
605  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, heads_),
606  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, literals_),
607  ~0u, // no _has_bits_
608  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, _internal_metadata_),
609  ~0u, // no _extensions_
610  ~0u, // no _oneof_case_
611  ~0u, // no _weak_field_map_
612  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, tails_),
613  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, heads_),
614  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, literals_),
615  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, demands_),
616  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, capacity_),
617  ~0u, // no _has_bits_
618  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, _internal_metadata_),
619  ~0u, // no _extensions_
620  ~0u, // no _oneof_case_
621  ~0u, // no _weak_field_map_
622  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, vars_),
623  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, values_),
624  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, negated_),
625  ~0u, // no _has_bits_
626  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, _internal_metadata_),
627  ~0u, // no _extensions_
628  ~0u, // no _oneof_case_
629  ~0u, // no _weak_field_map_
630  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_direct_),
631  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_inverse_),
632  ~0u, // no _has_bits_
633  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, _internal_metadata_),
634  ~0u, // no _extensions_
635  ~0u, // no _oneof_case_
636  ~0u, // no _weak_field_map_
637  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, starting_state_),
638  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, final_states_),
639  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_tail_),
640  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_head_),
641  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_label_),
642  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, vars_),
643  ~0u, // no _has_bits_
644  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _internal_metadata_),
645  ~0u, // no _extensions_
646  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _oneof_case_[0]),
647  ~0u, // no _weak_field_map_
648  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, name_),
649  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, enforcement_literal_),
650  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
651  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
652  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
653  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
654  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
655  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
656  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
657  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
658  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
659  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
660  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
661  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
662  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
663  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
664  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
665  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
666  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
667  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
668  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
669  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
670  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
671  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
672  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
673  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
674  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
675  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, constraint_),
676  ~0u, // no _has_bits_
677  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, _internal_metadata_),
678  ~0u, // no _extensions_
679  ~0u, // no _oneof_case_
680  ~0u, // no _weak_field_map_
681  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, vars_),
682  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, coeffs_),
683  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, offset_),
684  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_factor_),
685  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, domain_),
686  ~0u, // no _has_bits_
687  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, _internal_metadata_),
688  ~0u, // no _extensions_
689  ~0u, // no _oneof_case_
690  ~0u, // no _weak_field_map_
691  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, var_),
692  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, offset_),
693  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, positive_coeff_),
694  ~0u, // no _has_bits_
695  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, _internal_metadata_),
696  ~0u, // no _extensions_
697  ~0u, // no _oneof_case_
698  ~0u, // no _weak_field_map_
699  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variables_),
700  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variable_selection_strategy_),
701  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, domain_reduction_strategy_),
702  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, transformations_),
703  ~0u, // no _has_bits_
704  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, _internal_metadata_),
705  ~0u, // no _extensions_
706  ~0u, // no _oneof_case_
707  ~0u, // no _weak_field_map_
708  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, vars_),
709  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, values_),
710  ~0u, // no _has_bits_
711  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, _internal_metadata_),
712  ~0u, // no _extensions_
713  ~0u, // no _oneof_case_
714  ~0u, // no _weak_field_map_
715  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, name_),
716  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, variables_),
717  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, constraints_),
718  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, objective_),
719  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, search_strategy_),
720  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, solution_hint_),
721  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, assumptions_),
722  ~0u, // no _has_bits_
723  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, _internal_metadata_),
724  ~0u, // no _extensions_
725  ~0u, // no _oneof_case_
726  ~0u, // no _weak_field_map_
727  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, status_),
728  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_),
729  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, objective_value_),
730  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, best_objective_bound_),
731  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_lower_bounds_),
732  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_upper_bounds_),
733  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, tightened_variables_),
734  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, sufficient_assumptions_for_infeasibility_),
735  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, all_solutions_were_found_),
736  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_booleans_),
737  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_conflicts_),
738  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_branches_),
739  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_binary_propagations_),
740  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_integer_propagations_),
741  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_restarts_),
742  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_lp_iterations_),
743  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, wall_time_),
744  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, user_time_),
745  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, deterministic_time_),
746  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, primal_integral_),
747  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_info_),
748 };
749 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
750  { 0, -1, sizeof(::operations_research::sat::IntegerVariableProto)},
751  { 7, -1, sizeof(::operations_research::sat::BoolArgumentProto)},
752  { 13, -1, sizeof(::operations_research::sat::IntegerArgumentProto)},
753  { 20, -1, sizeof(::operations_research::sat::LinearExpressionProto)},
754  { 28, -1, sizeof(::operations_research::sat::LinearArgumentProto)},
755  { 35, -1, sizeof(::operations_research::sat::AllDifferentConstraintProto)},
756  { 41, -1, sizeof(::operations_research::sat::LinearConstraintProto)},
757  { 49, -1, sizeof(::operations_research::sat::ElementConstraintProto)},
758  { 57, -1, sizeof(::operations_research::sat::IntervalConstraintProto)},
759  { 68, -1, sizeof(::operations_research::sat::NoOverlapConstraintProto)},
760  { 74, -1, sizeof(::operations_research::sat::NoOverlap2DConstraintProto)},
761  { 82, -1, sizeof(::operations_research::sat::CumulativeConstraintProto)},
762  { 90, -1, sizeof(::operations_research::sat::ReservoirConstraintProto)},
763  { 100, -1, sizeof(::operations_research::sat::CircuitConstraintProto)},
764  { 108, -1, sizeof(::operations_research::sat::RoutesConstraintProto)},
765  { 118, -1, sizeof(::operations_research::sat::TableConstraintProto)},
766  { 126, -1, sizeof(::operations_research::sat::InverseConstraintProto)},
767  { 133, -1, sizeof(::operations_research::sat::AutomatonConstraintProto)},
768  { 144, -1, sizeof(::operations_research::sat::ConstraintProto)},
769  { 177, -1, sizeof(::operations_research::sat::CpObjectiveProto)},
770  { 187, -1, sizeof(::operations_research::sat::DecisionStrategyProto_AffineTransformation)},
771  { 195, -1, sizeof(::operations_research::sat::DecisionStrategyProto)},
772  { 204, -1, sizeof(::operations_research::sat::PartialVariableAssignment)},
773  { 211, -1, sizeof(::operations_research::sat::CpModelProto)},
774  { 223, -1, sizeof(::operations_research::sat::CpSolverResponse)},
775 };
776 
777 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
778  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerVariableProto_default_instance_),
779  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BoolArgumentProto_default_instance_),
780  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerArgumentProto_default_instance_),
781  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearExpressionProto_default_instance_),
782  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearArgumentProto_default_instance_),
783  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AllDifferentConstraintProto_default_instance_),
784  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearConstraintProto_default_instance_),
785  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ElementConstraintProto_default_instance_),
786  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntervalConstraintProto_default_instance_),
787  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlapConstraintProto_default_instance_),
788  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlap2DConstraintProto_default_instance_),
789  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CumulativeConstraintProto_default_instance_),
790  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ReservoirConstraintProto_default_instance_),
791  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CircuitConstraintProto_default_instance_),
792  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_RoutesConstraintProto_default_instance_),
793  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_TableConstraintProto_default_instance_),
794  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_InverseConstraintProto_default_instance_),
795  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AutomatonConstraintProto_default_instance_),
796  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ConstraintProto_default_instance_),
797  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpObjectiveProto_default_instance_),
798  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_AffineTransformation_default_instance_),
799  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_default_instance_),
800  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_PartialVariableAssignment_default_instance_),
801  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpModelProto_default_instance_),
802  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverResponse_default_instance_),
803 };
804 
805 const char descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
806  "\n\032ortools/sat/cp_model.proto\022\027operations"
807  "_research.sat\"4\n\024IntegerVariableProto\022\014\n"
808  "\004name\030\001 \001(\t\022\016\n\006domain\030\002 \003(\003\"%\n\021BoolArgum"
809  "entProto\022\020\n\010literals\030\001 \003(\005\"4\n\024IntegerArg"
810  "umentProto\022\016\n\006target\030\001 \001(\005\022\014\n\004vars\030\002 \003(\005"
811  "\"E\n\025LinearExpressionProto\022\014\n\004vars\030\001 \003(\005\022"
812  "\016\n\006coeffs\030\002 \003(\003\022\016\n\006offset\030\003 \001(\003\"\224\001\n\023Line"
813  "arArgumentProto\022>\n\006target\030\001 \001(\0132..operat"
814  "ions_research.sat.LinearExpressionProto\022"
815  "=\n\005exprs\030\002 \003(\0132..operations_research.sat"
816  ".LinearExpressionProto\"+\n\033AllDifferentCo"
817  "nstraintProto\022\014\n\004vars\030\001 \003(\005\"E\n\025LinearCon"
818  "straintProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003"
819  "(\003\022\016\n\006domain\030\003 \003(\003\"E\n\026ElementConstraintP"
820  "roto\022\r\n\005index\030\001 \001(\005\022\016\n\006target\030\002 \001(\005\022\014\n\004v"
821  "ars\030\003 \003(\005\"\214\002\n\027IntervalConstraintProto\022\r\n"
822  "\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\022\014\n\004size\030\003 \001(\005\022"
823  "B\n\nstart_view\030\004 \001(\0132..operations_researc"
824  "h.sat.LinearExpressionProto\022@\n\010end_view\030"
825  "\005 \001(\0132..operations_research.sat.LinearEx"
826  "pressionProto\022A\n\tsize_view\030\006 \001(\0132..opera"
827  "tions_research.sat.LinearExpressionProto"
828  "\"-\n\030NoOverlapConstraintProto\022\021\n\tinterval"
829  "s\030\001 \003(\005\"p\n\032NoOverlap2DConstraintProto\022\023\n"
830  "\013x_intervals\030\001 \003(\005\022\023\n\013y_intervals\030\002 \003(\005\022"
831  "(\n boxes_with_null_area_can_overlap\030\003 \001("
832  "\010\"Q\n\031CumulativeConstraintProto\022\020\n\010capaci"
833  "ty\030\001 \001(\005\022\021\n\tintervals\030\002 \003(\005\022\017\n\007demands\030\003"
834  " \003(\005\"q\n\030ReservoirConstraintProto\022\021\n\tmin_"
835  "level\030\001 \001(\003\022\021\n\tmax_level\030\002 \001(\003\022\r\n\005times\030"
836  "\003 \003(\005\022\017\n\007demands\030\004 \003(\003\022\017\n\007actives\030\005 \003(\005\""
837  "H\n\026CircuitConstraintProto\022\r\n\005tails\030\003 \003(\005"
838  "\022\r\n\005heads\030\004 \003(\005\022\020\n\010literals\030\005 \003(\005\"j\n\025Rou"
839  "tesConstraintProto\022\r\n\005tails\030\001 \003(\005\022\r\n\005hea"
840  "ds\030\002 \003(\005\022\020\n\010literals\030\003 \003(\005\022\017\n\007demands\030\004 "
841  "\003(\005\022\020\n\010capacity\030\005 \001(\003\"E\n\024TableConstraint"
842  "Proto\022\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\022\017\n\007n"
843  "egated\030\003 \001(\010\"=\n\026InverseConstraintProto\022\020"
844  "\n\010f_direct\030\001 \003(\005\022\021\n\tf_inverse\030\002 \003(\005\"\242\001\n\030"
845  "AutomatonConstraintProto\022\026\n\016starting_sta"
846  "te\030\002 \001(\003\022\024\n\014final_states\030\003 \003(\003\022\027\n\017transi"
847  "tion_tail\030\004 \003(\003\022\027\n\017transition_head\030\005 \003(\003"
848  "\022\030\n\020transition_label\030\006 \003(\003\022\014\n\004vars\030\007 \003(\005"
849  "\"\355\r\n\017ConstraintProto\022\014\n\004name\030\001 \001(\t\022\033\n\023en"
850  "forcement_literal\030\002 \003(\005\022=\n\007bool_or\030\003 \001(\013"
851  "2*.operations_research.sat.BoolArgumentP"
852  "rotoH\000\022>\n\010bool_and\030\004 \001(\0132*.operations_re"
853  "search.sat.BoolArgumentProtoH\000\022A\n\013at_mos"
854  "t_one\030\032 \001(\0132*.operations_research.sat.Bo"
855  "olArgumentProtoH\000\022A\n\013exactly_one\030\035 \001(\0132*"
856  ".operations_research.sat.BoolArgumentPro"
857  "toH\000\022>\n\010bool_xor\030\005 \001(\0132*.operations_rese"
858  "arch.sat.BoolArgumentProtoH\000\022@\n\007int_div\030"
859  "\007 \001(\0132-.operations_research.sat.IntegerA"
860  "rgumentProtoH\000\022@\n\007int_mod\030\010 \001(\0132-.operat"
861  "ions_research.sat.IntegerArgumentProtoH\000"
862  "\022@\n\007int_max\030\t \001(\0132-.operations_research."
863  "sat.IntegerArgumentProtoH\000\022\?\n\007lin_max\030\033 "
864  "\001(\0132,.operations_research.sat.LinearArgu"
865  "mentProtoH\000\022@\n\007int_min\030\n \001(\0132-.operation"
866  "s_research.sat.IntegerArgumentProtoH\000\022\?\n"
867  "\007lin_min\030\034 \001(\0132,.operations_research.sat"
868  ".LinearArgumentProtoH\000\022A\n\010int_prod\030\013 \001(\013"
869  "2-.operations_research.sat.IntegerArgume"
870  "ntProtoH\000\022@\n\006linear\030\014 \001(\0132..operations_r"
871  "esearch.sat.LinearConstraintProtoH\000\022H\n\010a"
872  "ll_diff\030\r \001(\01324.operations_research.sat."
873  "AllDifferentConstraintProtoH\000\022B\n\007element"
874  "\030\016 \001(\0132/.operations_research.sat.Element"
875  "ConstraintProtoH\000\022B\n\007circuit\030\017 \001(\0132/.ope"
876  "rations_research.sat.CircuitConstraintPr"
877  "otoH\000\022@\n\006routes\030\027 \001(\0132..operations_resea"
878  "rch.sat.RoutesConstraintProtoH\000\022>\n\005table"
879  "\030\020 \001(\0132-.operations_research.sat.TableCo"
880  "nstraintProtoH\000\022F\n\tautomaton\030\021 \001(\01321.ope"
881  "rations_research.sat.AutomatonConstraint"
882  "ProtoH\000\022B\n\007inverse\030\022 \001(\0132/.operations_re"
883  "search.sat.InverseConstraintProtoH\000\022F\n\tr"
884  "eservoir\030\030 \001(\01321.operations_research.sat"
885  ".ReservoirConstraintProtoH\000\022D\n\010interval\030"
886  "\023 \001(\01320.operations_research.sat.Interval"
887  "ConstraintProtoH\000\022G\n\nno_overlap\030\024 \001(\01321."
888  "operations_research.sat.NoOverlapConstra"
889  "intProtoH\000\022L\n\rno_overlap_2d\030\025 \001(\01323.oper"
890  "ations_research.sat.NoOverlap2DConstrain"
891  "tProtoH\000\022H\n\ncumulative\030\026 \001(\01322.operation"
892  "s_research.sat.CumulativeConstraintProto"
893  "H\000B\014\n\nconstraint\"h\n\020CpObjectiveProto\022\014\n\004"
894  "vars\030\001 \003(\005\022\016\n\006coeffs\030\004 \003(\003\022\016\n\006offset\030\002 \001"
895  "(\001\022\026\n\016scaling_factor\030\003 \001(\001\022\016\n\006domain\030\005 \003"
896  "(\003\"\325\005\n\025DecisionStrategyProto\022\021\n\tvariable"
897  "s\030\001 \003(\005\022m\n\033variable_selection_strategy\030\002"
898  " \001(\0162H.operations_research.sat.DecisionS"
899  "trategyProto.VariableSelectionStrategy\022i"
900  "\n\031domain_reduction_strategy\030\003 \001(\0162F.oper"
901  "ations_research.sat.DecisionStrategyProt"
902  "o.DomainReductionStrategy\022\\\n\017transformat"
903  "ions\030\004 \003(\0132C.operations_research.sat.Dec"
904  "isionStrategyProto.AffineTransformation\032"
905  "K\n\024AffineTransformation\022\013\n\003var\030\001 \001(\005\022\016\n\006"
906  "offset\030\002 \001(\003\022\026\n\016positive_coeff\030\003 \001(\003\"\224\001\n"
907  "\031VariableSelectionStrategy\022\020\n\014CHOOSE_FIR"
908  "ST\020\000\022\025\n\021CHOOSE_LOWEST_MIN\020\001\022\026\n\022CHOOSE_HI"
909  "GHEST_MAX\020\002\022\032\n\026CHOOSE_MIN_DOMAIN_SIZE\020\003\022"
910  "\032\n\026CHOOSE_MAX_DOMAIN_SIZE\020\004\"\214\001\n\027DomainRe"
911  "ductionStrategy\022\024\n\020SELECT_MIN_VALUE\020\000\022\024\n"
912  "\020SELECT_MAX_VALUE\020\001\022\025\n\021SELECT_LOWER_HALF"
913  "\020\002\022\025\n\021SELECT_UPPER_HALF\020\003\022\027\n\023SELECT_MEDI"
914  "AN_VALUE\020\004\"9\n\031PartialVariableAssignment\022"
915  "\014\n\004vars\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\"\204\003\n\014CpMode"
916  "lProto\022\014\n\004name\030\001 \001(\t\022@\n\tvariables\030\002 \003(\0132"
917  "-.operations_research.sat.IntegerVariabl"
918  "eProto\022=\n\013constraints\030\003 \003(\0132(.operations"
919  "_research.sat.ConstraintProto\022<\n\tobjecti"
920  "ve\030\004 \001(\0132).operations_research.sat.CpObj"
921  "ectiveProto\022G\n\017search_strategy\030\005 \003(\0132..o"
922  "perations_research.sat.DecisionStrategyP"
923  "roto\022I\n\rsolution_hint\030\006 \001(\01322.operations"
924  "_research.sat.PartialVariableAssignment\022"
925  "\023\n\013assumptions\030\007 \003(\005\"\233\005\n\020CpSolverRespons"
926  "e\0227\n\006status\030\001 \001(\0162\'.operations_research."
927  "sat.CpSolverStatus\022\020\n\010solution\030\002 \003(\003\022\027\n\017"
928  "objective_value\030\003 \001(\001\022\034\n\024best_objective_"
929  "bound\030\004 \001(\001\022\035\n\025solution_lower_bounds\030\022 \003"
930  "(\003\022\035\n\025solution_upper_bounds\030\023 \003(\003\022J\n\023tig"
931  "htened_variables\030\025 \003(\0132-.operations_rese"
932  "arch.sat.IntegerVariableProto\0220\n(suffici"
933  "ent_assumptions_for_infeasibility\030\027 \003(\005\022"
934  " \n\030all_solutions_were_found\030\005 \001(\010\022\024\n\014num"
935  "_booleans\030\n \001(\003\022\025\n\rnum_conflicts\030\013 \001(\003\022\024"
936  "\n\014num_branches\030\014 \001(\003\022\037\n\027num_binary_propa"
937  "gations\030\r \001(\003\022 \n\030num_integer_propagation"
938  "s\030\016 \001(\003\022\024\n\014num_restarts\030\030 \001(\003\022\031\n\021num_lp_"
939  "iterations\030\031 \001(\003\022\021\n\twall_time\030\017 \001(\001\022\021\n\tu"
940  "ser_time\030\020 \001(\001\022\032\n\022deterministic_time\030\021 \001"
941  "(\001\022\027\n\017primal_integral\030\026 \001(\001\022\025\n\rsolution_"
942  "info\030\024 \001(\t*[\n\016CpSolverStatus\022\013\n\007UNKNOWN\020"
943  "\000\022\021\n\rMODEL_INVALID\020\001\022\014\n\010FEASIBLE\020\002\022\016\n\nIN"
944  "FEASIBLE\020\003\022\013\n\007OPTIMAL\020\004B@\n\026com.google.or"
945  "tools.satB\017CpModelProtobufP\001\252\002\022Google.Or"
946  "Tools.Satb\006proto3"
947  ;
948 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_deps[1] = {
949 };
950 static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_sccs[25] = {
976 };
977 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once;
978 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto = {
979  false, false, descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto, "ortools/sat/cp_model.proto", 5617,
983 };
984 
985 // Force running AddDescriptors() at dynamic initialization time.
986 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);
987 namespace operations_research {
988 namespace sat {
989 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_VariableSelectionStrategy_descriptor() {
990  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
992 }
994  switch (value) {
995  case 0:
996  case 1:
997  case 2:
998  case 3:
999  case 4:
1000  return true;
1001  default:
1002  return false;
1003  }
1004 }
1005 
1006 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1007 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_FIRST;
1008 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_LOWEST_MIN;
1009 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_HIGHEST_MAX;
1010 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MIN_DOMAIN_SIZE;
1011 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::CHOOSE_MAX_DOMAIN_SIZE;
1012 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MIN;
1013 constexpr DecisionStrategyProto_VariableSelectionStrategy DecisionStrategyProto::VariableSelectionStrategy_MAX;
1014 constexpr int DecisionStrategyProto::VariableSelectionStrategy_ARRAYSIZE;
1015 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1016 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_DomainReductionStrategy_descriptor() {
1017  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1019 }
1021  switch (value) {
1022  case 0:
1023  case 1:
1024  case 2:
1025  case 3:
1026  case 4:
1027  return true;
1028  default:
1029  return false;
1030  }
1031 }
1032 
1033 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1034 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MIN_VALUE;
1035 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MAX_VALUE;
1036 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_LOWER_HALF;
1037 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_UPPER_HALF;
1038 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::SELECT_MEDIAN_VALUE;
1039 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MIN;
1040 constexpr DecisionStrategyProto_DomainReductionStrategy DecisionStrategyProto::DomainReductionStrategy_MAX;
1041 constexpr int DecisionStrategyProto::DomainReductionStrategy_ARRAYSIZE;
1042 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1043 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CpSolverStatus_descriptor() {
1044  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1046 }
1048  switch (value) {
1049  case 0:
1050  case 1:
1051  case 2:
1052  case 3:
1053  case 4:
1054  return true;
1055  default:
1056  return false;
1057  }
1058 }
1059 
1060 
1061 // ===================================================================
1062 
1064  public:
1065 };
1066 
1067 IntegerVariableProto::IntegerVariableProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1068  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1069  domain_(arena) {
1070  SharedCtor();
1071  RegisterArenaDtor(arena);
1072  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerVariableProto)
1073 }
1074 IntegerVariableProto::IntegerVariableProto(const IntegerVariableProto& from)
1075  : ::PROTOBUF_NAMESPACE_ID::Message(),
1076  domain_(from.domain_) {
1077  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1078  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1079  if (!from._internal_name().empty()) {
1080  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1081  GetArena());
1082  }
1083  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerVariableProto)
1084 }
1085 
1086 void IntegerVariableProto::SharedCtor() {
1087  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1088  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1089 }
1090 
1091 IntegerVariableProto::~IntegerVariableProto() {
1092  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerVariableProto)
1093  SharedDtor();
1094  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1095 }
1096 
1097 void IntegerVariableProto::SharedDtor() {
1098  GOOGLE_DCHECK(GetArena() == nullptr);
1099  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1100 }
1101 
1102 void IntegerVariableProto::ArenaDtor(void* object) {
1103  IntegerVariableProto* _this = reinterpret_cast< IntegerVariableProto* >(object);
1104  (void)_this;
1105 }
1106 void IntegerVariableProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1107 }
1108 void IntegerVariableProto::SetCachedSize(int size) const {
1109  _cached_size_.Set(size);
1110 }
1111 const IntegerVariableProto& IntegerVariableProto::default_instance() {
1112  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntegerVariableProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1113  return *internal_default_instance();
1114 }
1115 
1116 
1117 void IntegerVariableProto::Clear() {
1118 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerVariableProto)
1119  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1120  // Prevent compiler warnings about cached_has_bits being unused
1121  (void) cached_has_bits;
1122 
1123  domain_.Clear();
1124  name_.ClearToEmpty();
1125  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1126 }
1127 
1128 const char* IntegerVariableProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1129 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1130  while (!ctx->Done(&ptr)) {
1132  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1133  CHK_(ptr);
1134  switch (tag >> 3) {
1135  // string name = 1;
1136  case 1:
1137  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1138  auto str = _internal_mutable_name();
1139  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1140  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.IntegerVariableProto.name"));
1141  CHK_(ptr);
1142  } else goto handle_unusual;
1143  continue;
1144  // repeated int64 domain = 2;
1145  case 2:
1146  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1147  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
1148  CHK_(ptr);
1149  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1150  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1151  CHK_(ptr);
1152  } else goto handle_unusual;
1153  continue;
1154  default: {
1155  handle_unusual:
1156  if ((tag & 7) == 4 || tag == 0) {
1157  ctx->SetLastTag(tag);
1158  goto success;
1159  }
1160  ptr = UnknownFieldParse(tag,
1161  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1162  ptr, ctx);
1163  CHK_(ptr != nullptr);
1164  continue;
1165  }
1166  } // switch
1167  } // while
1168 success:
1169  return ptr;
1170 failure:
1171  ptr = nullptr;
1172  goto success;
1173 #undef CHK_
1174 }
1175 
1176 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerVariableProto::_InternalSerialize(
1177  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1178  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerVariableProto)
1179  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1180  (void) cached_has_bits;
1181 
1182  // string name = 1;
1183  if (this->name().size() > 0) {
1184  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1185  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1186  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1187  "operations_research.sat.IntegerVariableProto.name");
1188  target = stream->WriteStringMaybeAliased(
1189  1, this->_internal_name(), target);
1190  }
1191 
1192  // repeated int64 domain = 2;
1193  {
1194  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
1195  if (byte_size > 0) {
1196  target = stream->WriteInt64Packed(
1197  2, _internal_domain(), byte_size, target);
1198  }
1199  }
1200 
1201  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1202  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1203  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1204  }
1205  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerVariableProto)
1206  return target;
1207 }
1208 
1209 size_t IntegerVariableProto::ByteSizeLong() const {
1210 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerVariableProto)
1211  size_t total_size = 0;
1212 
1213  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1214  // Prevent compiler warnings about cached_has_bits being unused
1215  (void) cached_has_bits;
1216 
1217  // repeated int64 domain = 2;
1218  {
1219  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1220  Int64Size(this->domain_);
1221  if (data_size > 0) {
1222  total_size += 1 +
1223  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1224  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1225  }
1226  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1227  _domain_cached_byte_size_.store(cached_size,
1228  std::memory_order_relaxed);
1229  total_size += data_size;
1230  }
1231 
1232  // string name = 1;
1233  if (this->name().size() > 0) {
1234  total_size += 1 +
1235  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1236  this->_internal_name());
1237  }
1238 
1239  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1240  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1241  _internal_metadata_, total_size, &_cached_size_);
1242  }
1243  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1244  SetCachedSize(cached_size);
1245  return total_size;
1246 }
1247 
1248 void IntegerVariableProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1249 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerVariableProto)
1250  GOOGLE_DCHECK_NE(&from, this);
1251  const IntegerVariableProto* source =
1252  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerVariableProto>(
1253  &from);
1254  if (source == nullptr) {
1255  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerVariableProto)
1256  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1257  } else {
1258  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerVariableProto)
1259  MergeFrom(*source);
1260  }
1261 }
1262 
1263 void IntegerVariableProto::MergeFrom(const IntegerVariableProto& from) {
1264 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerVariableProto)
1265  GOOGLE_DCHECK_NE(&from, this);
1266  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1267  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1268  (void) cached_has_bits;
1269 
1270  domain_.MergeFrom(from.domain_);
1271  if (from.name().size() > 0) {
1272  _internal_set_name(from._internal_name());
1273  }
1274 }
1275 
1276 void IntegerVariableProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1277 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerVariableProto)
1278  if (&from == this) return;
1279  Clear();
1280  MergeFrom(from);
1281 }
1282 
1283 void IntegerVariableProto::CopyFrom(const IntegerVariableProto& from) {
1284 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerVariableProto)
1285  if (&from == this) return;
1286  Clear();
1287  MergeFrom(from);
1288 }
1289 
1290 bool IntegerVariableProto::IsInitialized() const {
1291  return true;
1292 }
1293 
1294 void IntegerVariableProto::InternalSwap(IntegerVariableProto* other) {
1295  using std::swap;
1296  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1297  domain_.InternalSwap(&other->domain_);
1298  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
1299 }
1300 
1301 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerVariableProto::GetMetadata() const {
1302  return GetMetadataStatic();
1303 }
1304 
1305 
1306 // ===================================================================
1307 
1309  public:
1310 };
1311 
1312 BoolArgumentProto::BoolArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1313  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1314  literals_(arena) {
1315  SharedCtor();
1316  RegisterArenaDtor(arena);
1317  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BoolArgumentProto)
1318 }
1319 BoolArgumentProto::BoolArgumentProto(const BoolArgumentProto& from)
1320  : ::PROTOBUF_NAMESPACE_ID::Message(),
1321  literals_(from.literals_) {
1322  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1323  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BoolArgumentProto)
1324 }
1325 
1326 void BoolArgumentProto::SharedCtor() {
1327 }
1328 
1329 BoolArgumentProto::~BoolArgumentProto() {
1330  // @@protoc_insertion_point(destructor:operations_research.sat.BoolArgumentProto)
1331  SharedDtor();
1332  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1333 }
1334 
1335 void BoolArgumentProto::SharedDtor() {
1336  GOOGLE_DCHECK(GetArena() == nullptr);
1337 }
1338 
1339 void BoolArgumentProto::ArenaDtor(void* object) {
1340  BoolArgumentProto* _this = reinterpret_cast< BoolArgumentProto* >(object);
1341  (void)_this;
1342 }
1343 void BoolArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1344 }
1345 void BoolArgumentProto::SetCachedSize(int size) const {
1346  _cached_size_.Set(size);
1347 }
1348 const BoolArgumentProto& BoolArgumentProto::default_instance() {
1349  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_BoolArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1350  return *internal_default_instance();
1351 }
1352 
1353 
1354 void BoolArgumentProto::Clear() {
1355 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BoolArgumentProto)
1356  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1357  // Prevent compiler warnings about cached_has_bits being unused
1358  (void) cached_has_bits;
1359 
1360  literals_.Clear();
1361  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1362 }
1363 
1364 const char* BoolArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1365 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1366  while (!ctx->Done(&ptr)) {
1368  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1369  CHK_(ptr);
1370  switch (tag >> 3) {
1371  // repeated int32 literals = 1;
1372  case 1:
1373  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1374  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
1375  CHK_(ptr);
1376  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1377  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1378  CHK_(ptr);
1379  } else goto handle_unusual;
1380  continue;
1381  default: {
1382  handle_unusual:
1383  if ((tag & 7) == 4 || tag == 0) {
1384  ctx->SetLastTag(tag);
1385  goto success;
1386  }
1387  ptr = UnknownFieldParse(tag,
1388  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1389  ptr, ctx);
1390  CHK_(ptr != nullptr);
1391  continue;
1392  }
1393  } // switch
1394  } // while
1395 success:
1396  return ptr;
1397 failure:
1398  ptr = nullptr;
1399  goto success;
1400 #undef CHK_
1401 }
1402 
1403 ::PROTOBUF_NAMESPACE_ID::uint8* BoolArgumentProto::_InternalSerialize(
1404  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1405  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BoolArgumentProto)
1406  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1407  (void) cached_has_bits;
1408 
1409  // repeated int32 literals = 1;
1410  {
1411  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
1412  if (byte_size > 0) {
1413  target = stream->WriteInt32Packed(
1414  1, _internal_literals(), byte_size, target);
1415  }
1416  }
1417 
1418  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1419  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1420  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1421  }
1422  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BoolArgumentProto)
1423  return target;
1424 }
1425 
1426 size_t BoolArgumentProto::ByteSizeLong() const {
1427 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BoolArgumentProto)
1428  size_t total_size = 0;
1429 
1430  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1431  // Prevent compiler warnings about cached_has_bits being unused
1432  (void) cached_has_bits;
1433 
1434  // repeated int32 literals = 1;
1435  {
1436  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1437  Int32Size(this->literals_);
1438  if (data_size > 0) {
1439  total_size += 1 +
1440  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1441  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1442  }
1443  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1444  _literals_cached_byte_size_.store(cached_size,
1445  std::memory_order_relaxed);
1446  total_size += data_size;
1447  }
1448 
1449  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1450  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1451  _internal_metadata_, total_size, &_cached_size_);
1452  }
1453  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1454  SetCachedSize(cached_size);
1455  return total_size;
1456 }
1457 
1458 void BoolArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1459 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.BoolArgumentProto)
1460  GOOGLE_DCHECK_NE(&from, this);
1461  const BoolArgumentProto* source =
1462  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<BoolArgumentProto>(
1463  &from);
1464  if (source == nullptr) {
1465  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.BoolArgumentProto)
1466  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1467  } else {
1468  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.BoolArgumentProto)
1469  MergeFrom(*source);
1470  }
1471 }
1472 
1473 void BoolArgumentProto::MergeFrom(const BoolArgumentProto& from) {
1474 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BoolArgumentProto)
1475  GOOGLE_DCHECK_NE(&from, this);
1476  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1477  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1478  (void) cached_has_bits;
1479 
1480  literals_.MergeFrom(from.literals_);
1481 }
1482 
1483 void BoolArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1484 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.BoolArgumentProto)
1485  if (&from == this) return;
1486  Clear();
1487  MergeFrom(from);
1488 }
1489 
1490 void BoolArgumentProto::CopyFrom(const BoolArgumentProto& from) {
1491 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BoolArgumentProto)
1492  if (&from == this) return;
1493  Clear();
1494  MergeFrom(from);
1495 }
1496 
1497 bool BoolArgumentProto::IsInitialized() const {
1498  return true;
1499 }
1500 
1501 void BoolArgumentProto::InternalSwap(BoolArgumentProto* other) {
1502  using std::swap;
1503  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1504  literals_.InternalSwap(&other->literals_);
1505 }
1506 
1507 ::PROTOBUF_NAMESPACE_ID::Metadata BoolArgumentProto::GetMetadata() const {
1508  return GetMetadataStatic();
1509 }
1510 
1511 
1512 // ===================================================================
1513 
1515  public:
1516 };
1517 
1518 IntegerArgumentProto::IntegerArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1519  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1520  vars_(arena) {
1521  SharedCtor();
1522  RegisterArenaDtor(arena);
1523  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerArgumentProto)
1524 }
1525 IntegerArgumentProto::IntegerArgumentProto(const IntegerArgumentProto& from)
1526  : ::PROTOBUF_NAMESPACE_ID::Message(),
1527  vars_(from.vars_) {
1528  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1529  target_ = from.target_;
1530  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerArgumentProto)
1531 }
1532 
1533 void IntegerArgumentProto::SharedCtor() {
1534  target_ = 0;
1535 }
1536 
1537 IntegerArgumentProto::~IntegerArgumentProto() {
1538  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerArgumentProto)
1539  SharedDtor();
1540  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1541 }
1542 
1543 void IntegerArgumentProto::SharedDtor() {
1544  GOOGLE_DCHECK(GetArena() == nullptr);
1545 }
1546 
1547 void IntegerArgumentProto::ArenaDtor(void* object) {
1548  IntegerArgumentProto* _this = reinterpret_cast< IntegerArgumentProto* >(object);
1549  (void)_this;
1550 }
1551 void IntegerArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1552 }
1553 void IntegerArgumentProto::SetCachedSize(int size) const {
1554  _cached_size_.Set(size);
1555 }
1556 const IntegerArgumentProto& IntegerArgumentProto::default_instance() {
1557  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1558  return *internal_default_instance();
1559 }
1560 
1561 
1562 void IntegerArgumentProto::Clear() {
1563 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerArgumentProto)
1564  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1565  // Prevent compiler warnings about cached_has_bits being unused
1566  (void) cached_has_bits;
1567 
1568  vars_.Clear();
1569  target_ = 0;
1570  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1571 }
1572 
1573 const char* IntegerArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1574 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1575  while (!ctx->Done(&ptr)) {
1577  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1578  CHK_(ptr);
1579  switch (tag >> 3) {
1580  // int32 target = 1;
1581  case 1:
1582  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1583  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1584  CHK_(ptr);
1585  } else goto handle_unusual;
1586  continue;
1587  // repeated int32 vars = 2;
1588  case 2:
1589  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1590  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1591  CHK_(ptr);
1592  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1593  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1594  CHK_(ptr);
1595  } else goto handle_unusual;
1596  continue;
1597  default: {
1598  handle_unusual:
1599  if ((tag & 7) == 4 || tag == 0) {
1600  ctx->SetLastTag(tag);
1601  goto success;
1602  }
1603  ptr = UnknownFieldParse(tag,
1604  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1605  ptr, ctx);
1606  CHK_(ptr != nullptr);
1607  continue;
1608  }
1609  } // switch
1610  } // while
1611 success:
1612  return ptr;
1613 failure:
1614  ptr = nullptr;
1615  goto success;
1616 #undef CHK_
1617 }
1618 
1619 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerArgumentProto::_InternalSerialize(
1620  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1621  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerArgumentProto)
1622  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1623  (void) cached_has_bits;
1624 
1625  // int32 target = 1;
1626  if (this->target() != 0) {
1627  target = stream->EnsureSpace(target);
1628  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_target(), target);
1629  }
1630 
1631  // repeated int32 vars = 2;
1632  {
1633  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1634  if (byte_size > 0) {
1635  target = stream->WriteInt32Packed(
1636  2, _internal_vars(), byte_size, target);
1637  }
1638  }
1639 
1640  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1641  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1642  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1643  }
1644  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerArgumentProto)
1645  return target;
1646 }
1647 
1648 size_t IntegerArgumentProto::ByteSizeLong() const {
1649 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerArgumentProto)
1650  size_t total_size = 0;
1651 
1652  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1653  // Prevent compiler warnings about cached_has_bits being unused
1654  (void) cached_has_bits;
1655 
1656  // repeated int32 vars = 2;
1657  {
1658  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1659  Int32Size(this->vars_);
1660  if (data_size > 0) {
1661  total_size += 1 +
1662  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1663  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1664  }
1665  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1666  _vars_cached_byte_size_.store(cached_size,
1667  std::memory_order_relaxed);
1668  total_size += data_size;
1669  }
1670 
1671  // int32 target = 1;
1672  if (this->target() != 0) {
1673  total_size += 1 +
1674  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1675  this->_internal_target());
1676  }
1677 
1678  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1679  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1680  _internal_metadata_, total_size, &_cached_size_);
1681  }
1682  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1683  SetCachedSize(cached_size);
1684  return total_size;
1685 }
1686 
1687 void IntegerArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1688 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntegerArgumentProto)
1689  GOOGLE_DCHECK_NE(&from, this);
1690  const IntegerArgumentProto* source =
1691  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntegerArgumentProto>(
1692  &from);
1693  if (source == nullptr) {
1694  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntegerArgumentProto)
1695  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1696  } else {
1697  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntegerArgumentProto)
1698  MergeFrom(*source);
1699  }
1700 }
1701 
1702 void IntegerArgumentProto::MergeFrom(const IntegerArgumentProto& from) {
1703 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerArgumentProto)
1704  GOOGLE_DCHECK_NE(&from, this);
1705  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1706  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1707  (void) cached_has_bits;
1708 
1709  vars_.MergeFrom(from.vars_);
1710  if (from.target() != 0) {
1711  _internal_set_target(from._internal_target());
1712  }
1713 }
1714 
1715 void IntegerArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1716 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntegerArgumentProto)
1717  if (&from == this) return;
1718  Clear();
1719  MergeFrom(from);
1720 }
1721 
1722 void IntegerArgumentProto::CopyFrom(const IntegerArgumentProto& from) {
1723 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerArgumentProto)
1724  if (&from == this) return;
1725  Clear();
1726  MergeFrom(from);
1727 }
1728 
1729 bool IntegerArgumentProto::IsInitialized() const {
1730  return true;
1731 }
1732 
1733 void IntegerArgumentProto::InternalSwap(IntegerArgumentProto* other) {
1734  using std::swap;
1735  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
1736  vars_.InternalSwap(&other->vars_);
1737  swap(target_, other->target_);
1738 }
1739 
1740 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerArgumentProto::GetMetadata() const {
1741  return GetMetadataStatic();
1742 }
1743 
1744 
1745 // ===================================================================
1746 
1748  public:
1749 };
1750 
1751 LinearExpressionProto::LinearExpressionProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
1752  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
1753  vars_(arena),
1754  coeffs_(arena) {
1755  SharedCtor();
1756  RegisterArenaDtor(arena);
1757  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearExpressionProto)
1758 }
1759 LinearExpressionProto::LinearExpressionProto(const LinearExpressionProto& from)
1760  : ::PROTOBUF_NAMESPACE_ID::Message(),
1761  vars_(from.vars_),
1762  coeffs_(from.coeffs_) {
1763  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1764  offset_ = from.offset_;
1765  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearExpressionProto)
1766 }
1767 
1768 void LinearExpressionProto::SharedCtor() {
1769  offset_ = PROTOBUF_LONGLONG(0);
1770 }
1771 
1772 LinearExpressionProto::~LinearExpressionProto() {
1773  // @@protoc_insertion_point(destructor:operations_research.sat.LinearExpressionProto)
1774  SharedDtor();
1775  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1776 }
1777 
1778 void LinearExpressionProto::SharedDtor() {
1779  GOOGLE_DCHECK(GetArena() == nullptr);
1780 }
1781 
1782 void LinearExpressionProto::ArenaDtor(void* object) {
1783  LinearExpressionProto* _this = reinterpret_cast< LinearExpressionProto* >(object);
1784  (void)_this;
1785 }
1786 void LinearExpressionProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1787 }
1788 void LinearExpressionProto::SetCachedSize(int size) const {
1789  _cached_size_.Set(size);
1790 }
1791 const LinearExpressionProto& LinearExpressionProto::default_instance() {
1792  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
1793  return *internal_default_instance();
1794 }
1795 
1796 
1797 void LinearExpressionProto::Clear() {
1798 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearExpressionProto)
1799  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1800  // Prevent compiler warnings about cached_has_bits being unused
1801  (void) cached_has_bits;
1802 
1803  vars_.Clear();
1804  coeffs_.Clear();
1805  offset_ = PROTOBUF_LONGLONG(0);
1806  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1807 }
1808 
1809 const char* LinearExpressionProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1810 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1811  while (!ctx->Done(&ptr)) {
1813  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1814  CHK_(ptr);
1815  switch (tag >> 3) {
1816  // repeated int32 vars = 1;
1817  case 1:
1818  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1819  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1820  CHK_(ptr);
1821  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1822  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1823  CHK_(ptr);
1824  } else goto handle_unusual;
1825  continue;
1826  // repeated int64 coeffs = 2;
1827  case 2:
1828  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1829  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
1830  CHK_(ptr);
1831  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1832  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1833  CHK_(ptr);
1834  } else goto handle_unusual;
1835  continue;
1836  // int64 offset = 3;
1837  case 3:
1838  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1839  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1840  CHK_(ptr);
1841  } else goto handle_unusual;
1842  continue;
1843  default: {
1844  handle_unusual:
1845  if ((tag & 7) == 4 || tag == 0) {
1846  ctx->SetLastTag(tag);
1847  goto success;
1848  }
1849  ptr = UnknownFieldParse(tag,
1850  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1851  ptr, ctx);
1852  CHK_(ptr != nullptr);
1853  continue;
1854  }
1855  } // switch
1856  } // while
1857 success:
1858  return ptr;
1859 failure:
1860  ptr = nullptr;
1861  goto success;
1862 #undef CHK_
1863 }
1864 
1865 ::PROTOBUF_NAMESPACE_ID::uint8* LinearExpressionProto::_InternalSerialize(
1866  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1867  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearExpressionProto)
1868  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1869  (void) cached_has_bits;
1870 
1871  // repeated int32 vars = 1;
1872  {
1873  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1874  if (byte_size > 0) {
1875  target = stream->WriteInt32Packed(
1876  1, _internal_vars(), byte_size, target);
1877  }
1878  }
1879 
1880  // repeated int64 coeffs = 2;
1881  {
1882  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
1883  if (byte_size > 0) {
1884  target = stream->WriteInt64Packed(
1885  2, _internal_coeffs(), byte_size, target);
1886  }
1887  }
1888 
1889  // int64 offset = 3;
1890  if (this->offset() != 0) {
1891  target = stream->EnsureSpace(target);
1892  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_offset(), target);
1893  }
1894 
1895  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1896  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1897  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1898  }
1899  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearExpressionProto)
1900  return target;
1901 }
1902 
1903 size_t LinearExpressionProto::ByteSizeLong() const {
1904 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearExpressionProto)
1905  size_t total_size = 0;
1906 
1907  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1908  // Prevent compiler warnings about cached_has_bits being unused
1909  (void) cached_has_bits;
1910 
1911  // repeated int32 vars = 1;
1912  {
1913  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1914  Int32Size(this->vars_);
1915  if (data_size > 0) {
1916  total_size += 1 +
1917  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1918  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1919  }
1920  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1921  _vars_cached_byte_size_.store(cached_size,
1922  std::memory_order_relaxed);
1923  total_size += data_size;
1924  }
1925 
1926  // repeated int64 coeffs = 2;
1927  {
1928  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1929  Int64Size(this->coeffs_);
1930  if (data_size > 0) {
1931  total_size += 1 +
1932  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1933  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1934  }
1935  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1936  _coeffs_cached_byte_size_.store(cached_size,
1937  std::memory_order_relaxed);
1938  total_size += data_size;
1939  }
1940 
1941  // int64 offset = 3;
1942  if (this->offset() != 0) {
1943  total_size += 1 +
1944  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1945  this->_internal_offset());
1946  }
1947 
1948  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1949  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1950  _internal_metadata_, total_size, &_cached_size_);
1951  }
1952  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1953  SetCachedSize(cached_size);
1954  return total_size;
1955 }
1956 
1957 void LinearExpressionProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1958 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearExpressionProto)
1959  GOOGLE_DCHECK_NE(&from, this);
1960  const LinearExpressionProto* source =
1961  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearExpressionProto>(
1962  &from);
1963  if (source == nullptr) {
1964  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearExpressionProto)
1965  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
1966  } else {
1967  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearExpressionProto)
1968  MergeFrom(*source);
1969  }
1970 }
1971 
1972 void LinearExpressionProto::MergeFrom(const LinearExpressionProto& from) {
1973 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearExpressionProto)
1974  GOOGLE_DCHECK_NE(&from, this);
1975  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1976  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1977  (void) cached_has_bits;
1978 
1979  vars_.MergeFrom(from.vars_);
1980  coeffs_.MergeFrom(from.coeffs_);
1981  if (from.offset() != 0) {
1982  _internal_set_offset(from._internal_offset());
1983  }
1984 }
1985 
1986 void LinearExpressionProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
1987 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearExpressionProto)
1988  if (&from == this) return;
1989  Clear();
1990  MergeFrom(from);
1991 }
1992 
1993 void LinearExpressionProto::CopyFrom(const LinearExpressionProto& from) {
1994 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearExpressionProto)
1995  if (&from == this) return;
1996  Clear();
1997  MergeFrom(from);
1998 }
1999 
2000 bool LinearExpressionProto::IsInitialized() const {
2001  return true;
2002 }
2003 
2004 void LinearExpressionProto::InternalSwap(LinearExpressionProto* other) {
2005  using std::swap;
2006  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2007  vars_.InternalSwap(&other->vars_);
2008  coeffs_.InternalSwap(&other->coeffs_);
2009  swap(offset_, other->offset_);
2010 }
2011 
2012 ::PROTOBUF_NAMESPACE_ID::Metadata LinearExpressionProto::GetMetadata() const {
2013  return GetMetadataStatic();
2014 }
2015 
2016 
2017 // ===================================================================
2018 
2020  public:
2021  static const ::operations_research::sat::LinearExpressionProto& target(const LinearArgumentProto* msg);
2022 };
2023 
2024 const ::operations_research::sat::LinearExpressionProto&
2025 LinearArgumentProto::_Internal::target(const LinearArgumentProto* msg) {
2026  return *msg->target_;
2027 }
2028 LinearArgumentProto::LinearArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2029  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2030  exprs_(arena) {
2031  SharedCtor();
2032  RegisterArenaDtor(arena);
2033  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearArgumentProto)
2034 }
2035 LinearArgumentProto::LinearArgumentProto(const LinearArgumentProto& from)
2036  : ::PROTOBUF_NAMESPACE_ID::Message(),
2037  exprs_(from.exprs_) {
2038  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2039  if (from._internal_has_target()) {
2040  target_ = new ::operations_research::sat::LinearExpressionProto(*from.target_);
2041  } else {
2042  target_ = nullptr;
2043  }
2044  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearArgumentProto)
2045 }
2046 
2047 void LinearArgumentProto::SharedCtor() {
2048  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2049  target_ = nullptr;
2050 }
2051 
2052 LinearArgumentProto::~LinearArgumentProto() {
2053  // @@protoc_insertion_point(destructor:operations_research.sat.LinearArgumentProto)
2054  SharedDtor();
2055  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2056 }
2057 
2058 void LinearArgumentProto::SharedDtor() {
2059  GOOGLE_DCHECK(GetArena() == nullptr);
2060  if (this != internal_default_instance()) delete target_;
2061 }
2062 
2063 void LinearArgumentProto::ArenaDtor(void* object) {
2064  LinearArgumentProto* _this = reinterpret_cast< LinearArgumentProto* >(object);
2065  (void)_this;
2066 }
2067 void LinearArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2068 }
2069 void LinearArgumentProto::SetCachedSize(int size) const {
2070  _cached_size_.Set(size);
2071 }
2072 const LinearArgumentProto& LinearArgumentProto::default_instance() {
2073  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2074  return *internal_default_instance();
2075 }
2076 
2077 
2078 void LinearArgumentProto::Clear() {
2079 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearArgumentProto)
2080  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2081  // Prevent compiler warnings about cached_has_bits being unused
2082  (void) cached_has_bits;
2083 
2084  exprs_.Clear();
2085  if (GetArena() == nullptr && target_ != nullptr) {
2086  delete target_;
2087  }
2088  target_ = nullptr;
2089  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2090 }
2091 
2092 const char* LinearArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2093 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2094  while (!ctx->Done(&ptr)) {
2096  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2097  CHK_(ptr);
2098  switch (tag >> 3) {
2099  // .operations_research.sat.LinearExpressionProto target = 1;
2100  case 1:
2101  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2102  ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
2103  CHK_(ptr);
2104  } else goto handle_unusual;
2105  continue;
2106  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2107  case 2:
2108  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2109  ptr -= 1;
2110  do {
2111  ptr += 1;
2112  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
2113  CHK_(ptr);
2114  if (!ctx->DataAvailable(ptr)) break;
2115  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
2116  } else goto handle_unusual;
2117  continue;
2118  default: {
2119  handle_unusual:
2120  if ((tag & 7) == 4 || tag == 0) {
2121  ctx->SetLastTag(tag);
2122  goto success;
2123  }
2124  ptr = UnknownFieldParse(tag,
2125  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2126  ptr, ctx);
2127  CHK_(ptr != nullptr);
2128  continue;
2129  }
2130  } // switch
2131  } // while
2132 success:
2133  return ptr;
2134 failure:
2135  ptr = nullptr;
2136  goto success;
2137 #undef CHK_
2138 }
2139 
2140 ::PROTOBUF_NAMESPACE_ID::uint8* LinearArgumentProto::_InternalSerialize(
2141  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2142  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearArgumentProto)
2143  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2144  (void) cached_has_bits;
2145 
2146  // .operations_research.sat.LinearExpressionProto target = 1;
2147  if (this->has_target()) {
2148  target = stream->EnsureSpace(target);
2149  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2150  InternalWriteMessage(
2151  1, _Internal::target(this), target, stream);
2152  }
2153 
2154  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2155  for (unsigned int i = 0,
2156  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
2157  target = stream->EnsureSpace(target);
2158  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2159  InternalWriteMessage(2, this->_internal_exprs(i), target, stream);
2160  }
2161 
2162  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2163  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2164  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2165  }
2166  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearArgumentProto)
2167  return target;
2168 }
2169 
2170 size_t LinearArgumentProto::ByteSizeLong() const {
2171 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearArgumentProto)
2172  size_t total_size = 0;
2173 
2174  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2175  // Prevent compiler warnings about cached_has_bits being unused
2176  (void) cached_has_bits;
2177 
2178  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2179  total_size += 1UL * this->_internal_exprs_size();
2180  for (const auto& msg : this->exprs_) {
2181  total_size +=
2182  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2183  }
2184 
2185  // .operations_research.sat.LinearExpressionProto target = 1;
2186  if (this->has_target()) {
2187  total_size += 1 +
2188  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2189  *target_);
2190  }
2191 
2192  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2193  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2194  _internal_metadata_, total_size, &_cached_size_);
2195  }
2196  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2197  SetCachedSize(cached_size);
2198  return total_size;
2199 }
2200 
2201 void LinearArgumentProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2202 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearArgumentProto)
2203  GOOGLE_DCHECK_NE(&from, this);
2204  const LinearArgumentProto* source =
2205  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearArgumentProto>(
2206  &from);
2207  if (source == nullptr) {
2208  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearArgumentProto)
2209  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2210  } else {
2211  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearArgumentProto)
2212  MergeFrom(*source);
2213  }
2214 }
2215 
2216 void LinearArgumentProto::MergeFrom(const LinearArgumentProto& from) {
2217 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearArgumentProto)
2218  GOOGLE_DCHECK_NE(&from, this);
2219  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2220  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2221  (void) cached_has_bits;
2222 
2223  exprs_.MergeFrom(from.exprs_);
2224  if (from.has_target()) {
2225  _internal_mutable_target()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_target());
2226  }
2227 }
2228 
2229 void LinearArgumentProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2230 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearArgumentProto)
2231  if (&from == this) return;
2232  Clear();
2233  MergeFrom(from);
2234 }
2235 
2236 void LinearArgumentProto::CopyFrom(const LinearArgumentProto& from) {
2237 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearArgumentProto)
2238  if (&from == this) return;
2239  Clear();
2240  MergeFrom(from);
2241 }
2242 
2243 bool LinearArgumentProto::IsInitialized() const {
2244  return true;
2245 }
2246 
2247 void LinearArgumentProto::InternalSwap(LinearArgumentProto* other) {
2248  using std::swap;
2249  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2250  exprs_.InternalSwap(&other->exprs_);
2251  swap(target_, other->target_);
2252 }
2253 
2254 ::PROTOBUF_NAMESPACE_ID::Metadata LinearArgumentProto::GetMetadata() const {
2255  return GetMetadataStatic();
2256 }
2257 
2258 
2259 // ===================================================================
2260 
2262  public:
2263 };
2264 
2265 AllDifferentConstraintProto::AllDifferentConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2266  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2267  vars_(arena) {
2268  SharedCtor();
2269  RegisterArenaDtor(arena);
2270  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AllDifferentConstraintProto)
2271 }
2272 AllDifferentConstraintProto::AllDifferentConstraintProto(const AllDifferentConstraintProto& from)
2273  : ::PROTOBUF_NAMESPACE_ID::Message(),
2274  vars_(from.vars_) {
2275  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2276  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AllDifferentConstraintProto)
2277 }
2278 
2279 void AllDifferentConstraintProto::SharedCtor() {
2280 }
2281 
2282 AllDifferentConstraintProto::~AllDifferentConstraintProto() {
2283  // @@protoc_insertion_point(destructor:operations_research.sat.AllDifferentConstraintProto)
2284  SharedDtor();
2285  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2286 }
2287 
2288 void AllDifferentConstraintProto::SharedDtor() {
2289  GOOGLE_DCHECK(GetArena() == nullptr);
2290 }
2291 
2292 void AllDifferentConstraintProto::ArenaDtor(void* object) {
2293  AllDifferentConstraintProto* _this = reinterpret_cast< AllDifferentConstraintProto* >(object);
2294  (void)_this;
2295 }
2296 void AllDifferentConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2297 }
2298 void AllDifferentConstraintProto::SetCachedSize(int size) const {
2299  _cached_size_.Set(size);
2300 }
2301 const AllDifferentConstraintProto& AllDifferentConstraintProto::default_instance() {
2302  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2303  return *internal_default_instance();
2304 }
2305 
2306 
2307 void AllDifferentConstraintProto::Clear() {
2308 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AllDifferentConstraintProto)
2309  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2310  // Prevent compiler warnings about cached_has_bits being unused
2311  (void) cached_has_bits;
2312 
2313  vars_.Clear();
2314  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2315 }
2316 
2317 const char* AllDifferentConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2318 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2319  while (!ctx->Done(&ptr)) {
2321  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2322  CHK_(ptr);
2323  switch (tag >> 3) {
2324  // repeated int32 vars = 1;
2325  case 1:
2326  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2327  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2328  CHK_(ptr);
2329  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2330  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2331  CHK_(ptr);
2332  } else goto handle_unusual;
2333  continue;
2334  default: {
2335  handle_unusual:
2336  if ((tag & 7) == 4 || tag == 0) {
2337  ctx->SetLastTag(tag);
2338  goto success;
2339  }
2340  ptr = UnknownFieldParse(tag,
2341  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2342  ptr, ctx);
2343  CHK_(ptr != nullptr);
2344  continue;
2345  }
2346  } // switch
2347  } // while
2348 success:
2349  return ptr;
2350 failure:
2351  ptr = nullptr;
2352  goto success;
2353 #undef CHK_
2354 }
2355 
2356 ::PROTOBUF_NAMESPACE_ID::uint8* AllDifferentConstraintProto::_InternalSerialize(
2357  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2358  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AllDifferentConstraintProto)
2359  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2360  (void) cached_has_bits;
2361 
2362  // repeated int32 vars = 1;
2363  {
2364  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2365  if (byte_size > 0) {
2366  target = stream->WriteInt32Packed(
2367  1, _internal_vars(), byte_size, target);
2368  }
2369  }
2370 
2371  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2372  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2373  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2374  }
2375  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AllDifferentConstraintProto)
2376  return target;
2377 }
2378 
2379 size_t AllDifferentConstraintProto::ByteSizeLong() const {
2380 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AllDifferentConstraintProto)
2381  size_t total_size = 0;
2382 
2383  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2384  // Prevent compiler warnings about cached_has_bits being unused
2385  (void) cached_has_bits;
2386 
2387  // repeated int32 vars = 1;
2388  {
2389  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2390  Int32Size(this->vars_);
2391  if (data_size > 0) {
2392  total_size += 1 +
2393  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2394  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2395  }
2396  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2397  _vars_cached_byte_size_.store(cached_size,
2398  std::memory_order_relaxed);
2399  total_size += data_size;
2400  }
2401 
2402  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2403  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2404  _internal_metadata_, total_size, &_cached_size_);
2405  }
2406  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2407  SetCachedSize(cached_size);
2408  return total_size;
2409 }
2410 
2411 void AllDifferentConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2412 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2413  GOOGLE_DCHECK_NE(&from, this);
2414  const AllDifferentConstraintProto* source =
2415  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AllDifferentConstraintProto>(
2416  &from);
2417  if (source == nullptr) {
2418  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AllDifferentConstraintProto)
2419  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2420  } else {
2421  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AllDifferentConstraintProto)
2422  MergeFrom(*source);
2423  }
2424 }
2425 
2426 void AllDifferentConstraintProto::MergeFrom(const AllDifferentConstraintProto& from) {
2427 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2428  GOOGLE_DCHECK_NE(&from, this);
2429  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2430  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2431  (void) cached_has_bits;
2432 
2433  vars_.MergeFrom(from.vars_);
2434 }
2435 
2436 void AllDifferentConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2437 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2438  if (&from == this) return;
2439  Clear();
2440  MergeFrom(from);
2441 }
2442 
2443 void AllDifferentConstraintProto::CopyFrom(const AllDifferentConstraintProto& from) {
2444 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2445  if (&from == this) return;
2446  Clear();
2447  MergeFrom(from);
2448 }
2449 
2450 bool AllDifferentConstraintProto::IsInitialized() const {
2451  return true;
2452 }
2453 
2454 void AllDifferentConstraintProto::InternalSwap(AllDifferentConstraintProto* other) {
2455  using std::swap;
2456  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2457  vars_.InternalSwap(&other->vars_);
2458 }
2459 
2460 ::PROTOBUF_NAMESPACE_ID::Metadata AllDifferentConstraintProto::GetMetadata() const {
2461  return GetMetadataStatic();
2462 }
2463 
2464 
2465 // ===================================================================
2466 
2468  public:
2469 };
2470 
2471 LinearConstraintProto::LinearConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2472  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2473  vars_(arena),
2474  coeffs_(arena),
2475  domain_(arena) {
2476  SharedCtor();
2477  RegisterArenaDtor(arena);
2478  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearConstraintProto)
2479 }
2480 LinearConstraintProto::LinearConstraintProto(const LinearConstraintProto& from)
2481  : ::PROTOBUF_NAMESPACE_ID::Message(),
2482  vars_(from.vars_),
2483  coeffs_(from.coeffs_),
2484  domain_(from.domain_) {
2485  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2486  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearConstraintProto)
2487 }
2488 
2489 void LinearConstraintProto::SharedCtor() {
2490 }
2491 
2492 LinearConstraintProto::~LinearConstraintProto() {
2493  // @@protoc_insertion_point(destructor:operations_research.sat.LinearConstraintProto)
2494  SharedDtor();
2495  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2496 }
2497 
2498 void LinearConstraintProto::SharedDtor() {
2499  GOOGLE_DCHECK(GetArena() == nullptr);
2500 }
2501 
2502 void LinearConstraintProto::ArenaDtor(void* object) {
2503  LinearConstraintProto* _this = reinterpret_cast< LinearConstraintProto* >(object);
2504  (void)_this;
2505 }
2506 void LinearConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2507 }
2508 void LinearConstraintProto::SetCachedSize(int size) const {
2509  _cached_size_.Set(size);
2510 }
2511 const LinearConstraintProto& LinearConstraintProto::default_instance() {
2512  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2513  return *internal_default_instance();
2514 }
2515 
2516 
2517 void LinearConstraintProto::Clear() {
2518 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearConstraintProto)
2519  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2520  // Prevent compiler warnings about cached_has_bits being unused
2521  (void) cached_has_bits;
2522 
2523  vars_.Clear();
2524  coeffs_.Clear();
2525  domain_.Clear();
2526  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2527 }
2528 
2529 const char* LinearConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2530 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2531  while (!ctx->Done(&ptr)) {
2533  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2534  CHK_(ptr);
2535  switch (tag >> 3) {
2536  // repeated int32 vars = 1;
2537  case 1:
2538  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2539  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2540  CHK_(ptr);
2541  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2542  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2543  CHK_(ptr);
2544  } else goto handle_unusual;
2545  continue;
2546  // repeated int64 coeffs = 2;
2547  case 2:
2548  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2549  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
2550  CHK_(ptr);
2551  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
2552  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2553  CHK_(ptr);
2554  } else goto handle_unusual;
2555  continue;
2556  // repeated int64 domain = 3;
2557  case 3:
2558  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2559  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
2560  CHK_(ptr);
2561  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2562  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2563  CHK_(ptr);
2564  } else goto handle_unusual;
2565  continue;
2566  default: {
2567  handle_unusual:
2568  if ((tag & 7) == 4 || tag == 0) {
2569  ctx->SetLastTag(tag);
2570  goto success;
2571  }
2572  ptr = UnknownFieldParse(tag,
2573  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2574  ptr, ctx);
2575  CHK_(ptr != nullptr);
2576  continue;
2577  }
2578  } // switch
2579  } // while
2580 success:
2581  return ptr;
2582 failure:
2583  ptr = nullptr;
2584  goto success;
2585 #undef CHK_
2586 }
2587 
2588 ::PROTOBUF_NAMESPACE_ID::uint8* LinearConstraintProto::_InternalSerialize(
2589  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2590  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearConstraintProto)
2591  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2592  (void) cached_has_bits;
2593 
2594  // repeated int32 vars = 1;
2595  {
2596  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2597  if (byte_size > 0) {
2598  target = stream->WriteInt32Packed(
2599  1, _internal_vars(), byte_size, target);
2600  }
2601  }
2602 
2603  // repeated int64 coeffs = 2;
2604  {
2605  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
2606  if (byte_size > 0) {
2607  target = stream->WriteInt64Packed(
2608  2, _internal_coeffs(), byte_size, target);
2609  }
2610  }
2611 
2612  // repeated int64 domain = 3;
2613  {
2614  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
2615  if (byte_size > 0) {
2616  target = stream->WriteInt64Packed(
2617  3, _internal_domain(), byte_size, target);
2618  }
2619  }
2620 
2621  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2622  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2623  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2624  }
2625  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearConstraintProto)
2626  return target;
2627 }
2628 
2629 size_t LinearConstraintProto::ByteSizeLong() const {
2630 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearConstraintProto)
2631  size_t total_size = 0;
2632 
2633  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2634  // Prevent compiler warnings about cached_has_bits being unused
2635  (void) cached_has_bits;
2636 
2637  // repeated int32 vars = 1;
2638  {
2639  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2640  Int32Size(this->vars_);
2641  if (data_size > 0) {
2642  total_size += 1 +
2643  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2644  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2645  }
2646  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2647  _vars_cached_byte_size_.store(cached_size,
2648  std::memory_order_relaxed);
2649  total_size += data_size;
2650  }
2651 
2652  // repeated int64 coeffs = 2;
2653  {
2654  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2655  Int64Size(this->coeffs_);
2656  if (data_size > 0) {
2657  total_size += 1 +
2658  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2659  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2660  }
2661  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2662  _coeffs_cached_byte_size_.store(cached_size,
2663  std::memory_order_relaxed);
2664  total_size += data_size;
2665  }
2666 
2667  // repeated int64 domain = 3;
2668  {
2669  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2670  Int64Size(this->domain_);
2671  if (data_size > 0) {
2672  total_size += 1 +
2673  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2674  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2675  }
2676  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2677  _domain_cached_byte_size_.store(cached_size,
2678  std::memory_order_relaxed);
2679  total_size += data_size;
2680  }
2681 
2682  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2683  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2684  _internal_metadata_, total_size, &_cached_size_);
2685  }
2686  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2687  SetCachedSize(cached_size);
2688  return total_size;
2689 }
2690 
2691 void LinearConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2692 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.LinearConstraintProto)
2693  GOOGLE_DCHECK_NE(&from, this);
2694  const LinearConstraintProto* source =
2695  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<LinearConstraintProto>(
2696  &from);
2697  if (source == nullptr) {
2698  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.LinearConstraintProto)
2699  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2700  } else {
2701  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.LinearConstraintProto)
2702  MergeFrom(*source);
2703  }
2704 }
2705 
2706 void LinearConstraintProto::MergeFrom(const LinearConstraintProto& from) {
2707 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearConstraintProto)
2708  GOOGLE_DCHECK_NE(&from, this);
2709  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2710  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2711  (void) cached_has_bits;
2712 
2713  vars_.MergeFrom(from.vars_);
2714  coeffs_.MergeFrom(from.coeffs_);
2715  domain_.MergeFrom(from.domain_);
2716 }
2717 
2718 void LinearConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2719 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.LinearConstraintProto)
2720  if (&from == this) return;
2721  Clear();
2722  MergeFrom(from);
2723 }
2724 
2725 void LinearConstraintProto::CopyFrom(const LinearConstraintProto& from) {
2726 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearConstraintProto)
2727  if (&from == this) return;
2728  Clear();
2729  MergeFrom(from);
2730 }
2731 
2732 bool LinearConstraintProto::IsInitialized() const {
2733  return true;
2734 }
2735 
2736 void LinearConstraintProto::InternalSwap(LinearConstraintProto* other) {
2737  using std::swap;
2738  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
2739  vars_.InternalSwap(&other->vars_);
2740  coeffs_.InternalSwap(&other->coeffs_);
2741  domain_.InternalSwap(&other->domain_);
2742 }
2743 
2744 ::PROTOBUF_NAMESPACE_ID::Metadata LinearConstraintProto::GetMetadata() const {
2745  return GetMetadataStatic();
2746 }
2747 
2748 
2749 // ===================================================================
2750 
2752  public:
2753 };
2754 
2755 ElementConstraintProto::ElementConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
2756  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
2757  vars_(arena) {
2758  SharedCtor();
2759  RegisterArenaDtor(arena);
2760  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ElementConstraintProto)
2761 }
2762 ElementConstraintProto::ElementConstraintProto(const ElementConstraintProto& from)
2763  : ::PROTOBUF_NAMESPACE_ID::Message(),
2764  vars_(from.vars_) {
2765  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2766  ::memcpy(&index_, &from.index_,
2767  static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2768  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2769  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ElementConstraintProto)
2770 }
2771 
2772 void ElementConstraintProto::SharedCtor() {
2773  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2774  reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
2775  0, static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2776  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2777 }
2778 
2779 ElementConstraintProto::~ElementConstraintProto() {
2780  // @@protoc_insertion_point(destructor:operations_research.sat.ElementConstraintProto)
2781  SharedDtor();
2782  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2783 }
2784 
2785 void ElementConstraintProto::SharedDtor() {
2786  GOOGLE_DCHECK(GetArena() == nullptr);
2787 }
2788 
2789 void ElementConstraintProto::ArenaDtor(void* object) {
2790  ElementConstraintProto* _this = reinterpret_cast< ElementConstraintProto* >(object);
2791  (void)_this;
2792 }
2793 void ElementConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2794 }
2795 void ElementConstraintProto::SetCachedSize(int size) const {
2796  _cached_size_.Set(size);
2797 }
2798 const ElementConstraintProto& ElementConstraintProto::default_instance() {
2799  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
2800  return *internal_default_instance();
2801 }
2802 
2803 
2804 void ElementConstraintProto::Clear() {
2805 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ElementConstraintProto)
2806  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2807  // Prevent compiler warnings about cached_has_bits being unused
2808  (void) cached_has_bits;
2809 
2810  vars_.Clear();
2811  ::memset(&index_, 0, static_cast<size_t>(
2812  reinterpret_cast<char*>(&target_) -
2813  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2814  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2815 }
2816 
2817 const char* ElementConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2818 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2819  while (!ctx->Done(&ptr)) {
2821  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2822  CHK_(ptr);
2823  switch (tag >> 3) {
2824  // int32 index = 1;
2825  case 1:
2826  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2827  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2828  CHK_(ptr);
2829  } else goto handle_unusual;
2830  continue;
2831  // int32 target = 2;
2832  case 2:
2833  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2834  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2835  CHK_(ptr);
2836  } else goto handle_unusual;
2837  continue;
2838  // repeated int32 vars = 3;
2839  case 3:
2840  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2841  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2842  CHK_(ptr);
2843  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2844  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2845  CHK_(ptr);
2846  } else goto handle_unusual;
2847  continue;
2848  default: {
2849  handle_unusual:
2850  if ((tag & 7) == 4 || tag == 0) {
2851  ctx->SetLastTag(tag);
2852  goto success;
2853  }
2854  ptr = UnknownFieldParse(tag,
2855  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2856  ptr, ctx);
2857  CHK_(ptr != nullptr);
2858  continue;
2859  }
2860  } // switch
2861  } // while
2862 success:
2863  return ptr;
2864 failure:
2865  ptr = nullptr;
2866  goto success;
2867 #undef CHK_
2868 }
2869 
2870 ::PROTOBUF_NAMESPACE_ID::uint8* ElementConstraintProto::_InternalSerialize(
2871  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2872  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ElementConstraintProto)
2873  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2874  (void) cached_has_bits;
2875 
2876  // int32 index = 1;
2877  if (this->index() != 0) {
2878  target = stream->EnsureSpace(target);
2879  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
2880  }
2881 
2882  // int32 target = 2;
2883  if (this->target() != 0) {
2884  target = stream->EnsureSpace(target);
2885  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_target(), target);
2886  }
2887 
2888  // repeated int32 vars = 3;
2889  {
2890  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2891  if (byte_size > 0) {
2892  target = stream->WriteInt32Packed(
2893  3, _internal_vars(), byte_size, target);
2894  }
2895  }
2896 
2897  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2898  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2899  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2900  }
2901  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ElementConstraintProto)
2902  return target;
2903 }
2904 
2905 size_t ElementConstraintProto::ByteSizeLong() const {
2906 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ElementConstraintProto)
2907  size_t total_size = 0;
2908 
2909  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2910  // Prevent compiler warnings about cached_has_bits being unused
2911  (void) cached_has_bits;
2912 
2913  // repeated int32 vars = 3;
2914  {
2915  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2916  Int32Size(this->vars_);
2917  if (data_size > 0) {
2918  total_size += 1 +
2919  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2920  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2921  }
2922  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2923  _vars_cached_byte_size_.store(cached_size,
2924  std::memory_order_relaxed);
2925  total_size += data_size;
2926  }
2927 
2928  // int32 index = 1;
2929  if (this->index() != 0) {
2930  total_size += 1 +
2931  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2932  this->_internal_index());
2933  }
2934 
2935  // int32 target = 2;
2936  if (this->target() != 0) {
2937  total_size += 1 +
2938  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2939  this->_internal_target());
2940  }
2941 
2942  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2943  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2944  _internal_metadata_, total_size, &_cached_size_);
2945  }
2946  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2947  SetCachedSize(cached_size);
2948  return total_size;
2949 }
2950 
2951 void ElementConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2952 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ElementConstraintProto)
2953  GOOGLE_DCHECK_NE(&from, this);
2954  const ElementConstraintProto* source =
2955  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ElementConstraintProto>(
2956  &from);
2957  if (source == nullptr) {
2958  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ElementConstraintProto)
2959  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
2960  } else {
2961  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ElementConstraintProto)
2962  MergeFrom(*source);
2963  }
2964 }
2965 
2966 void ElementConstraintProto::MergeFrom(const ElementConstraintProto& from) {
2967 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ElementConstraintProto)
2968  GOOGLE_DCHECK_NE(&from, this);
2969  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2970  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2971  (void) cached_has_bits;
2972 
2973  vars_.MergeFrom(from.vars_);
2974  if (from.index() != 0) {
2975  _internal_set_index(from._internal_index());
2976  }
2977  if (from.target() != 0) {
2978  _internal_set_target(from._internal_target());
2979  }
2980 }
2981 
2982 void ElementConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
2983 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ElementConstraintProto)
2984  if (&from == this) return;
2985  Clear();
2986  MergeFrom(from);
2987 }
2988 
2989 void ElementConstraintProto::CopyFrom(const ElementConstraintProto& from) {
2990 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ElementConstraintProto)
2991  if (&from == this) return;
2992  Clear();
2993  MergeFrom(from);
2994 }
2995 
2996 bool ElementConstraintProto::IsInitialized() const {
2997  return true;
2998 }
2999 
3000 void ElementConstraintProto::InternalSwap(ElementConstraintProto* other) {
3001  using std::swap;
3002  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3003  vars_.InternalSwap(&other->vars_);
3004  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3005  PROTOBUF_FIELD_OFFSET(ElementConstraintProto, target_)
3006  + sizeof(ElementConstraintProto::target_)
3007  - PROTOBUF_FIELD_OFFSET(ElementConstraintProto, index_)>(
3008  reinterpret_cast<char*>(&index_),
3009  reinterpret_cast<char*>(&other->index_));
3010 }
3011 
3012 ::PROTOBUF_NAMESPACE_ID::Metadata ElementConstraintProto::GetMetadata() const {
3013  return GetMetadataStatic();
3014 }
3015 
3016 
3017 // ===================================================================
3018 
3020  public:
3021  static const ::operations_research::sat::LinearExpressionProto& start_view(const IntervalConstraintProto* msg);
3022  static const ::operations_research::sat::LinearExpressionProto& end_view(const IntervalConstraintProto* msg);
3023  static const ::operations_research::sat::LinearExpressionProto& size_view(const IntervalConstraintProto* msg);
3024 };
3025 
3026 const ::operations_research::sat::LinearExpressionProto&
3027 IntervalConstraintProto::_Internal::start_view(const IntervalConstraintProto* msg) {
3028  return *msg->start_view_;
3029 }
3030 const ::operations_research::sat::LinearExpressionProto&
3031 IntervalConstraintProto::_Internal::end_view(const IntervalConstraintProto* msg) {
3032  return *msg->end_view_;
3033 }
3034 const ::operations_research::sat::LinearExpressionProto&
3035 IntervalConstraintProto::_Internal::size_view(const IntervalConstraintProto* msg) {
3036  return *msg->size_view_;
3037 }
3038 IntervalConstraintProto::IntervalConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3039  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
3040  SharedCtor();
3041  RegisterArenaDtor(arena);
3042  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntervalConstraintProto)
3043 }
3044 IntervalConstraintProto::IntervalConstraintProto(const IntervalConstraintProto& from)
3045  : ::PROTOBUF_NAMESPACE_ID::Message() {
3046  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3047  if (from._internal_has_start_view()) {
3048  start_view_ = new ::operations_research::sat::LinearExpressionProto(*from.start_view_);
3049  } else {
3050  start_view_ = nullptr;
3051  }
3052  if (from._internal_has_end_view()) {
3053  end_view_ = new ::operations_research::sat::LinearExpressionProto(*from.end_view_);
3054  } else {
3055  end_view_ = nullptr;
3056  }
3057  if (from._internal_has_size_view()) {
3058  size_view_ = new ::operations_research::sat::LinearExpressionProto(*from.size_view_);
3059  } else {
3060  size_view_ = nullptr;
3061  }
3062  ::memcpy(&start_, &from.start_,
3063  static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3064  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3065  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntervalConstraintProto)
3066 }
3067 
3068 void IntervalConstraintProto::SharedCtor() {
3069  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3070  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3071  reinterpret_cast<char*>(&start_view_) - reinterpret_cast<char*>(this)),
3072  0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3073  reinterpret_cast<char*>(&start_view_)) + sizeof(size_));
3074 }
3075 
3076 IntervalConstraintProto::~IntervalConstraintProto() {
3077  // @@protoc_insertion_point(destructor:operations_research.sat.IntervalConstraintProto)
3078  SharedDtor();
3079  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3080 }
3081 
3082 void IntervalConstraintProto::SharedDtor() {
3083  GOOGLE_DCHECK(GetArena() == nullptr);
3084  if (this != internal_default_instance()) delete start_view_;
3085  if (this != internal_default_instance()) delete end_view_;
3086  if (this != internal_default_instance()) delete size_view_;
3087 }
3088 
3089 void IntervalConstraintProto::ArenaDtor(void* object) {
3090  IntervalConstraintProto* _this = reinterpret_cast< IntervalConstraintProto* >(object);
3091  (void)_this;
3092 }
3093 void IntervalConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3094 }
3095 void IntervalConstraintProto::SetCachedSize(int size) const {
3096  _cached_size_.Set(size);
3097 }
3098 const IntervalConstraintProto& IntervalConstraintProto::default_instance() {
3099  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_IntervalConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3100  return *internal_default_instance();
3101 }
3102 
3103 
3104 void IntervalConstraintProto::Clear() {
3105 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntervalConstraintProto)
3106  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3107  // Prevent compiler warnings about cached_has_bits being unused
3108  (void) cached_has_bits;
3109 
3110  if (GetArena() == nullptr && start_view_ != nullptr) {
3111  delete start_view_;
3112  }
3113  start_view_ = nullptr;
3114  if (GetArena() == nullptr && end_view_ != nullptr) {
3115  delete end_view_;
3116  }
3117  end_view_ = nullptr;
3118  if (GetArena() == nullptr && size_view_ != nullptr) {
3119  delete size_view_;
3120  }
3121  size_view_ = nullptr;
3122  ::memset(&start_, 0, static_cast<size_t>(
3123  reinterpret_cast<char*>(&size_) -
3124  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3125  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3126 }
3127 
3128 const char* IntervalConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3129 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3130  while (!ctx->Done(&ptr)) {
3132  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3133  CHK_(ptr);
3134  switch (tag >> 3) {
3135  // int32 start = 1;
3136  case 1:
3137  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3138  start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3139  CHK_(ptr);
3140  } else goto handle_unusual;
3141  continue;
3142  // int32 end = 2;
3143  case 2:
3144  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
3145  end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3146  CHK_(ptr);
3147  } else goto handle_unusual;
3148  continue;
3149  // int32 size = 3;
3150  case 3:
3151  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3152  size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3153  CHK_(ptr);
3154  } else goto handle_unusual;
3155  continue;
3156  // .operations_research.sat.LinearExpressionProto start_view = 4;
3157  case 4:
3158  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
3159  ptr = ctx->ParseMessage(_internal_mutable_start_view(), ptr);
3160  CHK_(ptr);
3161  } else goto handle_unusual;
3162  continue;
3163  // .operations_research.sat.LinearExpressionProto end_view = 5;
3164  case 5:
3165  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
3166  ptr = ctx->ParseMessage(_internal_mutable_end_view(), ptr);
3167  CHK_(ptr);
3168  } else goto handle_unusual;
3169  continue;
3170  // .operations_research.sat.LinearExpressionProto size_view = 6;
3171  case 6:
3172  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
3173  ptr = ctx->ParseMessage(_internal_mutable_size_view(), ptr);
3174  CHK_(ptr);
3175  } else goto handle_unusual;
3176  continue;
3177  default: {
3178  handle_unusual:
3179  if ((tag & 7) == 4 || tag == 0) {
3180  ctx->SetLastTag(tag);
3181  goto success;
3182  }
3183  ptr = UnknownFieldParse(tag,
3184  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3185  ptr, ctx);
3186  CHK_(ptr != nullptr);
3187  continue;
3188  }
3189  } // switch
3190  } // while
3191 success:
3192  return ptr;
3193 failure:
3194  ptr = nullptr;
3195  goto success;
3196 #undef CHK_
3197 }
3198 
3199 ::PROTOBUF_NAMESPACE_ID::uint8* IntervalConstraintProto::_InternalSerialize(
3200  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3201  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntervalConstraintProto)
3202  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3203  (void) cached_has_bits;
3204 
3205  // int32 start = 1;
3206  if (this->start() != 0) {
3207  target = stream->EnsureSpace(target);
3208  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_start(), target);
3209  }
3210 
3211  // int32 end = 2;
3212  if (this->end() != 0) {
3213  target = stream->EnsureSpace(target);
3214  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end(), target);
3215  }
3216 
3217  // int32 size = 3;
3218  if (this->size() != 0) {
3219  target = stream->EnsureSpace(target);
3220  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_size(), target);
3221  }
3222 
3223  // .operations_research.sat.LinearExpressionProto start_view = 4;
3224  if (this->has_start_view()) {
3225  target = stream->EnsureSpace(target);
3226  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3227  InternalWriteMessage(
3228  4, _Internal::start_view(this), target, stream);
3229  }
3230 
3231  // .operations_research.sat.LinearExpressionProto end_view = 5;
3232  if (this->has_end_view()) {
3233  target = stream->EnsureSpace(target);
3234  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3235  InternalWriteMessage(
3236  5, _Internal::end_view(this), target, stream);
3237  }
3238 
3239  // .operations_research.sat.LinearExpressionProto size_view = 6;
3240  if (this->has_size_view()) {
3241  target = stream->EnsureSpace(target);
3242  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3243  InternalWriteMessage(
3244  6, _Internal::size_view(this), target, stream);
3245  }
3246 
3247  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3248  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3249  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3250  }
3251  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntervalConstraintProto)
3252  return target;
3253 }
3254 
3255 size_t IntervalConstraintProto::ByteSizeLong() const {
3256 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntervalConstraintProto)
3257  size_t total_size = 0;
3258 
3259  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3260  // Prevent compiler warnings about cached_has_bits being unused
3261  (void) cached_has_bits;
3262 
3263  // .operations_research.sat.LinearExpressionProto start_view = 4;
3264  if (this->has_start_view()) {
3265  total_size += 1 +
3266  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3267  *start_view_);
3268  }
3269 
3270  // .operations_research.sat.LinearExpressionProto end_view = 5;
3271  if (this->has_end_view()) {
3272  total_size += 1 +
3273  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3274  *end_view_);
3275  }
3276 
3277  // .operations_research.sat.LinearExpressionProto size_view = 6;
3278  if (this->has_size_view()) {
3279  total_size += 1 +
3280  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3281  *size_view_);
3282  }
3283 
3284  // int32 start = 1;
3285  if (this->start() != 0) {
3286  total_size += 1 +
3287  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3288  this->_internal_start());
3289  }
3290 
3291  // int32 end = 2;
3292  if (this->end() != 0) {
3293  total_size += 1 +
3294  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3295  this->_internal_end());
3296  }
3297 
3298  // int32 size = 3;
3299  if (this->size() != 0) {
3300  total_size += 1 +
3301  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3302  this->_internal_size());
3303  }
3304 
3305  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3306  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3307  _internal_metadata_, total_size, &_cached_size_);
3308  }
3309  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3310  SetCachedSize(cached_size);
3311  return total_size;
3312 }
3313 
3314 void IntervalConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3315 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.IntervalConstraintProto)
3316  GOOGLE_DCHECK_NE(&from, this);
3317  const IntervalConstraintProto* source =
3318  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<IntervalConstraintProto>(
3319  &from);
3320  if (source == nullptr) {
3321  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.IntervalConstraintProto)
3322  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3323  } else {
3324  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.IntervalConstraintProto)
3325  MergeFrom(*source);
3326  }
3327 }
3328 
3329 void IntervalConstraintProto::MergeFrom(const IntervalConstraintProto& from) {
3330 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntervalConstraintProto)
3331  GOOGLE_DCHECK_NE(&from, this);
3332  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3333  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3334  (void) cached_has_bits;
3335 
3336  if (from.has_start_view()) {
3337  _internal_mutable_start_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_start_view());
3338  }
3339  if (from.has_end_view()) {
3340  _internal_mutable_end_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_end_view());
3341  }
3342  if (from.has_size_view()) {
3343  _internal_mutable_size_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_size_view());
3344  }
3345  if (from.start() != 0) {
3346  _internal_set_start(from._internal_start());
3347  }
3348  if (from.end() != 0) {
3349  _internal_set_end(from._internal_end());
3350  }
3351  if (from.size() != 0) {
3352  _internal_set_size(from._internal_size());
3353  }
3354 }
3355 
3356 void IntervalConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3357 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.IntervalConstraintProto)
3358  if (&from == this) return;
3359  Clear();
3360  MergeFrom(from);
3361 }
3362 
3363 void IntervalConstraintProto::CopyFrom(const IntervalConstraintProto& from) {
3364 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntervalConstraintProto)
3365  if (&from == this) return;
3366  Clear();
3367  MergeFrom(from);
3368 }
3369 
3370 bool IntervalConstraintProto::IsInitialized() const {
3371  return true;
3372 }
3373 
3374 void IntervalConstraintProto::InternalSwap(IntervalConstraintProto* other) {
3375  using std::swap;
3376  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3377  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3378  PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, size_)
3379  + sizeof(IntervalConstraintProto::size_)
3380  - PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, start_view_)>(
3381  reinterpret_cast<char*>(&start_view_),
3382  reinterpret_cast<char*>(&other->start_view_));
3383 }
3384 
3385 ::PROTOBUF_NAMESPACE_ID::Metadata IntervalConstraintProto::GetMetadata() const {
3386  return GetMetadataStatic();
3387 }
3388 
3389 
3390 // ===================================================================
3391 
3393  public:
3394 };
3395 
3396 NoOverlapConstraintProto::NoOverlapConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3397  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3398  intervals_(arena) {
3399  SharedCtor();
3400  RegisterArenaDtor(arena);
3401  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlapConstraintProto)
3402 }
3403 NoOverlapConstraintProto::NoOverlapConstraintProto(const NoOverlapConstraintProto& from)
3404  : ::PROTOBUF_NAMESPACE_ID::Message(),
3405  intervals_(from.intervals_) {
3406  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3407  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlapConstraintProto)
3408 }
3409 
3410 void NoOverlapConstraintProto::SharedCtor() {
3411 }
3412 
3413 NoOverlapConstraintProto::~NoOverlapConstraintProto() {
3414  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlapConstraintProto)
3415  SharedDtor();
3416  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3417 }
3418 
3419 void NoOverlapConstraintProto::SharedDtor() {
3420  GOOGLE_DCHECK(GetArena() == nullptr);
3421 }
3422 
3423 void NoOverlapConstraintProto::ArenaDtor(void* object) {
3424  NoOverlapConstraintProto* _this = reinterpret_cast< NoOverlapConstraintProto* >(object);
3425  (void)_this;
3426 }
3427 void NoOverlapConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3428 }
3429 void NoOverlapConstraintProto::SetCachedSize(int size) const {
3430  _cached_size_.Set(size);
3431 }
3432 const NoOverlapConstraintProto& NoOverlapConstraintProto::default_instance() {
3433  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3434  return *internal_default_instance();
3435 }
3436 
3437 
3438 void NoOverlapConstraintProto::Clear() {
3439 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlapConstraintProto)
3440  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3441  // Prevent compiler warnings about cached_has_bits being unused
3442  (void) cached_has_bits;
3443 
3444  intervals_.Clear();
3445  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3446 }
3447 
3448 const char* NoOverlapConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3449 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3450  while (!ctx->Done(&ptr)) {
3452  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3453  CHK_(ptr);
3454  switch (tag >> 3) {
3455  // repeated int32 intervals = 1;
3456  case 1:
3457  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3458  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3459  CHK_(ptr);
3460  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3461  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3462  CHK_(ptr);
3463  } else goto handle_unusual;
3464  continue;
3465  default: {
3466  handle_unusual:
3467  if ((tag & 7) == 4 || tag == 0) {
3468  ctx->SetLastTag(tag);
3469  goto success;
3470  }
3471  ptr = UnknownFieldParse(tag,
3472  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3473  ptr, ctx);
3474  CHK_(ptr != nullptr);
3475  continue;
3476  }
3477  } // switch
3478  } // while
3479 success:
3480  return ptr;
3481 failure:
3482  ptr = nullptr;
3483  goto success;
3484 #undef CHK_
3485 }
3486 
3487 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlapConstraintProto::_InternalSerialize(
3488  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3489  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlapConstraintProto)
3490  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3491  (void) cached_has_bits;
3492 
3493  // repeated int32 intervals = 1;
3494  {
3495  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3496  if (byte_size > 0) {
3497  target = stream->WriteInt32Packed(
3498  1, _internal_intervals(), byte_size, target);
3499  }
3500  }
3501 
3502  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3503  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3504  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3505  }
3506  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlapConstraintProto)
3507  return target;
3508 }
3509 
3510 size_t NoOverlapConstraintProto::ByteSizeLong() const {
3511 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlapConstraintProto)
3512  size_t total_size = 0;
3513 
3514  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3515  // Prevent compiler warnings about cached_has_bits being unused
3516  (void) cached_has_bits;
3517 
3518  // repeated int32 intervals = 1;
3519  {
3520  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3521  Int32Size(this->intervals_);
3522  if (data_size > 0) {
3523  total_size += 1 +
3524  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3525  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3526  }
3527  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3528  _intervals_cached_byte_size_.store(cached_size,
3529  std::memory_order_relaxed);
3530  total_size += data_size;
3531  }
3532 
3533  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3534  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3535  _internal_metadata_, total_size, &_cached_size_);
3536  }
3537  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3538  SetCachedSize(cached_size);
3539  return total_size;
3540 }
3541 
3542 void NoOverlapConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3543 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3544  GOOGLE_DCHECK_NE(&from, this);
3545  const NoOverlapConstraintProto* source =
3546  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlapConstraintProto>(
3547  &from);
3548  if (source == nullptr) {
3549  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlapConstraintProto)
3550  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3551  } else {
3552  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlapConstraintProto)
3553  MergeFrom(*source);
3554  }
3555 }
3556 
3557 void NoOverlapConstraintProto::MergeFrom(const NoOverlapConstraintProto& from) {
3558 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3559  GOOGLE_DCHECK_NE(&from, this);
3560  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3561  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3562  (void) cached_has_bits;
3563 
3564  intervals_.MergeFrom(from.intervals_);
3565 }
3566 
3567 void NoOverlapConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3568 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3569  if (&from == this) return;
3570  Clear();
3571  MergeFrom(from);
3572 }
3573 
3574 void NoOverlapConstraintProto::CopyFrom(const NoOverlapConstraintProto& from) {
3575 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3576  if (&from == this) return;
3577  Clear();
3578  MergeFrom(from);
3579 }
3580 
3581 bool NoOverlapConstraintProto::IsInitialized() const {
3582  return true;
3583 }
3584 
3585 void NoOverlapConstraintProto::InternalSwap(NoOverlapConstraintProto* other) {
3586  using std::swap;
3587  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3588  intervals_.InternalSwap(&other->intervals_);
3589 }
3590 
3591 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlapConstraintProto::GetMetadata() const {
3592  return GetMetadataStatic();
3593 }
3594 
3595 
3596 // ===================================================================
3597 
3599  public:
3600 };
3601 
3602 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3603  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3604  x_intervals_(arena),
3605  y_intervals_(arena) {
3606  SharedCtor();
3607  RegisterArenaDtor(arena);
3608  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3609 }
3610 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(const NoOverlap2DConstraintProto& from)
3611  : ::PROTOBUF_NAMESPACE_ID::Message(),
3612  x_intervals_(from.x_intervals_),
3613  y_intervals_(from.y_intervals_) {
3614  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3615  boxes_with_null_area_can_overlap_ = from.boxes_with_null_area_can_overlap_;
3616  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3617 }
3618 
3619 void NoOverlap2DConstraintProto::SharedCtor() {
3620  boxes_with_null_area_can_overlap_ = false;
3621 }
3622 
3623 NoOverlap2DConstraintProto::~NoOverlap2DConstraintProto() {
3624  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlap2DConstraintProto)
3625  SharedDtor();
3626  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3627 }
3628 
3629 void NoOverlap2DConstraintProto::SharedDtor() {
3630  GOOGLE_DCHECK(GetArena() == nullptr);
3631 }
3632 
3633 void NoOverlap2DConstraintProto::ArenaDtor(void* object) {
3634  NoOverlap2DConstraintProto* _this = reinterpret_cast< NoOverlap2DConstraintProto* >(object);
3635  (void)_this;
3636 }
3637 void NoOverlap2DConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3638 }
3639 void NoOverlap2DConstraintProto::SetCachedSize(int size) const {
3640  _cached_size_.Set(size);
3641 }
3642 const NoOverlap2DConstraintProto& NoOverlap2DConstraintProto::default_instance() {
3643  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_NoOverlap2DConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3644  return *internal_default_instance();
3645 }
3646 
3647 
3648 void NoOverlap2DConstraintProto::Clear() {
3649 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlap2DConstraintProto)
3650  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3651  // Prevent compiler warnings about cached_has_bits being unused
3652  (void) cached_has_bits;
3653 
3654  x_intervals_.Clear();
3655  y_intervals_.Clear();
3656  boxes_with_null_area_can_overlap_ = false;
3657  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3658 }
3659 
3660 const char* NoOverlap2DConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3661 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3662  while (!ctx->Done(&ptr)) {
3664  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3665  CHK_(ptr);
3666  switch (tag >> 3) {
3667  // repeated int32 x_intervals = 1;
3668  case 1:
3669  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3670  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_x_intervals(), ptr, ctx);
3671  CHK_(ptr);
3672  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3673  _internal_add_x_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3674  CHK_(ptr);
3675  } else goto handle_unusual;
3676  continue;
3677  // repeated int32 y_intervals = 2;
3678  case 2:
3679  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3680  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_y_intervals(), ptr, ctx);
3681  CHK_(ptr);
3682  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3683  _internal_add_y_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3684  CHK_(ptr);
3685  } else goto handle_unusual;
3686  continue;
3687  // bool boxes_with_null_area_can_overlap = 3;
3688  case 3:
3689  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3690  boxes_with_null_area_can_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3691  CHK_(ptr);
3692  } else goto handle_unusual;
3693  continue;
3694  default: {
3695  handle_unusual:
3696  if ((tag & 7) == 4 || tag == 0) {
3697  ctx->SetLastTag(tag);
3698  goto success;
3699  }
3700  ptr = UnknownFieldParse(tag,
3701  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3702  ptr, ctx);
3703  CHK_(ptr != nullptr);
3704  continue;
3705  }
3706  } // switch
3707  } // while
3708 success:
3709  return ptr;
3710 failure:
3711  ptr = nullptr;
3712  goto success;
3713 #undef CHK_
3714 }
3715 
3716 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlap2DConstraintProto::_InternalSerialize(
3717  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3718  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlap2DConstraintProto)
3719  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3720  (void) cached_has_bits;
3721 
3722  // repeated int32 x_intervals = 1;
3723  {
3724  int byte_size = _x_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3725  if (byte_size > 0) {
3726  target = stream->WriteInt32Packed(
3727  1, _internal_x_intervals(), byte_size, target);
3728  }
3729  }
3730 
3731  // repeated int32 y_intervals = 2;
3732  {
3733  int byte_size = _y_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3734  if (byte_size > 0) {
3735  target = stream->WriteInt32Packed(
3736  2, _internal_y_intervals(), byte_size, target);
3737  }
3738  }
3739 
3740  // bool boxes_with_null_area_can_overlap = 3;
3741  if (this->boxes_with_null_area_can_overlap() != 0) {
3742  target = stream->EnsureSpace(target);
3743  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_boxes_with_null_area_can_overlap(), target);
3744  }
3745 
3746  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3747  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3748  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3749  }
3750  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlap2DConstraintProto)
3751  return target;
3752 }
3753 
3754 size_t NoOverlap2DConstraintProto::ByteSizeLong() const {
3755 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlap2DConstraintProto)
3756  size_t total_size = 0;
3757 
3758  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3759  // Prevent compiler warnings about cached_has_bits being unused
3760  (void) cached_has_bits;
3761 
3762  // repeated int32 x_intervals = 1;
3763  {
3764  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3765  Int32Size(this->x_intervals_);
3766  if (data_size > 0) {
3767  total_size += 1 +
3768  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3769  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3770  }
3771  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3772  _x_intervals_cached_byte_size_.store(cached_size,
3773  std::memory_order_relaxed);
3774  total_size += data_size;
3775  }
3776 
3777  // repeated int32 y_intervals = 2;
3778  {
3779  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3780  Int32Size(this->y_intervals_);
3781  if (data_size > 0) {
3782  total_size += 1 +
3783  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3784  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3785  }
3786  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3787  _y_intervals_cached_byte_size_.store(cached_size,
3788  std::memory_order_relaxed);
3789  total_size += data_size;
3790  }
3791 
3792  // bool boxes_with_null_area_can_overlap = 3;
3793  if (this->boxes_with_null_area_can_overlap() != 0) {
3794  total_size += 1 + 1;
3795  }
3796 
3797  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3798  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3799  _internal_metadata_, total_size, &_cached_size_);
3800  }
3801  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3802  SetCachedSize(cached_size);
3803  return total_size;
3804 }
3805 
3806 void NoOverlap2DConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3807 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3808  GOOGLE_DCHECK_NE(&from, this);
3809  const NoOverlap2DConstraintProto* source =
3810  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<NoOverlap2DConstraintProto>(
3811  &from);
3812  if (source == nullptr) {
3813  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.NoOverlap2DConstraintProto)
3814  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
3815  } else {
3816  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.NoOverlap2DConstraintProto)
3817  MergeFrom(*source);
3818  }
3819 }
3820 
3821 void NoOverlap2DConstraintProto::MergeFrom(const NoOverlap2DConstraintProto& from) {
3822 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3823  GOOGLE_DCHECK_NE(&from, this);
3824  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3825  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3826  (void) cached_has_bits;
3827 
3828  x_intervals_.MergeFrom(from.x_intervals_);
3829  y_intervals_.MergeFrom(from.y_intervals_);
3830  if (from.boxes_with_null_area_can_overlap() != 0) {
3831  _internal_set_boxes_with_null_area_can_overlap(from._internal_boxes_with_null_area_can_overlap());
3832  }
3833 }
3834 
3835 void NoOverlap2DConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
3836 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3837  if (&from == this) return;
3838  Clear();
3839  MergeFrom(from);
3840 }
3841 
3842 void NoOverlap2DConstraintProto::CopyFrom(const NoOverlap2DConstraintProto& from) {
3843 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3844  if (&from == this) return;
3845  Clear();
3846  MergeFrom(from);
3847 }
3848 
3849 bool NoOverlap2DConstraintProto::IsInitialized() const {
3850  return true;
3851 }
3852 
3853 void NoOverlap2DConstraintProto::InternalSwap(NoOverlap2DConstraintProto* other) {
3854  using std::swap;
3855  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
3856  x_intervals_.InternalSwap(&other->x_intervals_);
3857  y_intervals_.InternalSwap(&other->y_intervals_);
3858  swap(boxes_with_null_area_can_overlap_, other->boxes_with_null_area_can_overlap_);
3859 }
3860 
3861 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlap2DConstraintProto::GetMetadata() const {
3862  return GetMetadataStatic();
3863 }
3864 
3865 
3866 // ===================================================================
3867 
3869  public:
3870 };
3871 
3872 CumulativeConstraintProto::CumulativeConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
3873  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
3874  intervals_(arena),
3875  demands_(arena) {
3876  SharedCtor();
3877  RegisterArenaDtor(arena);
3878  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CumulativeConstraintProto)
3879 }
3880 CumulativeConstraintProto::CumulativeConstraintProto(const CumulativeConstraintProto& from)
3881  : ::PROTOBUF_NAMESPACE_ID::Message(),
3882  intervals_(from.intervals_),
3883  demands_(from.demands_) {
3884  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3885  capacity_ = from.capacity_;
3886  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CumulativeConstraintProto)
3887 }
3888 
3889 void CumulativeConstraintProto::SharedCtor() {
3890  capacity_ = 0;
3891 }
3892 
3893 CumulativeConstraintProto::~CumulativeConstraintProto() {
3894  // @@protoc_insertion_point(destructor:operations_research.sat.CumulativeConstraintProto)
3895  SharedDtor();
3896  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3897 }
3898 
3899 void CumulativeConstraintProto::SharedDtor() {
3900  GOOGLE_DCHECK(GetArena() == nullptr);
3901 }
3902 
3903 void CumulativeConstraintProto::ArenaDtor(void* object) {
3904  CumulativeConstraintProto* _this = reinterpret_cast< CumulativeConstraintProto* >(object);
3905  (void)_this;
3906 }
3907 void CumulativeConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3908 }
3909 void CumulativeConstraintProto::SetCachedSize(int size) const {
3910  _cached_size_.Set(size);
3911 }
3912 const CumulativeConstraintProto& CumulativeConstraintProto::default_instance() {
3913  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
3914  return *internal_default_instance();
3915 }
3916 
3917 
3918 void CumulativeConstraintProto::Clear() {
3919 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CumulativeConstraintProto)
3920  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3921  // Prevent compiler warnings about cached_has_bits being unused
3922  (void) cached_has_bits;
3923 
3924  intervals_.Clear();
3925  demands_.Clear();
3926  capacity_ = 0;
3927  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3928 }
3929 
3930 const char* CumulativeConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3931 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3932  while (!ctx->Done(&ptr)) {
3934  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3935  CHK_(ptr);
3936  switch (tag >> 3) {
3937  // int32 capacity = 1;
3938  case 1:
3939  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3940  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3941  CHK_(ptr);
3942  } else goto handle_unusual;
3943  continue;
3944  // repeated int32 intervals = 2;
3945  case 2:
3946  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3947  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3948  CHK_(ptr);
3949  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3950  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3951  CHK_(ptr);
3952  } else goto handle_unusual;
3953  continue;
3954  // repeated int32 demands = 3;
3955  case 3:
3956  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
3957  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
3958  CHK_(ptr);
3959  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
3960  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3961  CHK_(ptr);
3962  } else goto handle_unusual;
3963  continue;
3964  default: {
3965  handle_unusual:
3966  if ((tag & 7) == 4 || tag == 0) {
3967  ctx->SetLastTag(tag);
3968  goto success;
3969  }
3970  ptr = UnknownFieldParse(tag,
3971  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3972  ptr, ctx);
3973  CHK_(ptr != nullptr);
3974  continue;
3975  }
3976  } // switch
3977  } // while
3978 success:
3979  return ptr;
3980 failure:
3981  ptr = nullptr;
3982  goto success;
3983 #undef CHK_
3984 }
3985 
3986 ::PROTOBUF_NAMESPACE_ID::uint8* CumulativeConstraintProto::_InternalSerialize(
3987  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3988  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CumulativeConstraintProto)
3989  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3990  (void) cached_has_bits;
3991 
3992  // int32 capacity = 1;
3993  if (this->capacity() != 0) {
3994  target = stream->EnsureSpace(target);
3995  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_capacity(), target);
3996  }
3997 
3998  // repeated int32 intervals = 2;
3999  {
4000  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
4001  if (byte_size > 0) {
4002  target = stream->WriteInt32Packed(
4003  2, _internal_intervals(), byte_size, target);
4004  }
4005  }
4006 
4007  // repeated int32 demands = 3;
4008  {
4009  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4010  if (byte_size > 0) {
4011  target = stream->WriteInt32Packed(
4012  3, _internal_demands(), byte_size, target);
4013  }
4014  }
4015 
4016  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4017  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4018  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4019  }
4020  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CumulativeConstraintProto)
4021  return target;
4022 }
4023 
4024 size_t CumulativeConstraintProto::ByteSizeLong() const {
4025 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CumulativeConstraintProto)
4026  size_t total_size = 0;
4027 
4028  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4029  // Prevent compiler warnings about cached_has_bits being unused
4030  (void) cached_has_bits;
4031 
4032  // repeated int32 intervals = 2;
4033  {
4034  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4035  Int32Size(this->intervals_);
4036  if (data_size > 0) {
4037  total_size += 1 +
4038  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4039  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4040  }
4041  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4042  _intervals_cached_byte_size_.store(cached_size,
4043  std::memory_order_relaxed);
4044  total_size += data_size;
4045  }
4046 
4047  // repeated int32 demands = 3;
4048  {
4049  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4050  Int32Size(this->demands_);
4051  if (data_size > 0) {
4052  total_size += 1 +
4053  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4054  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4055  }
4056  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4057  _demands_cached_byte_size_.store(cached_size,
4058  std::memory_order_relaxed);
4059  total_size += data_size;
4060  }
4061 
4062  // int32 capacity = 1;
4063  if (this->capacity() != 0) {
4064  total_size += 1 +
4065  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4066  this->_internal_capacity());
4067  }
4068 
4069  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4070  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4071  _internal_metadata_, total_size, &_cached_size_);
4072  }
4073  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4074  SetCachedSize(cached_size);
4075  return total_size;
4076 }
4077 
4078 void CumulativeConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4079 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4080  GOOGLE_DCHECK_NE(&from, this);
4081  const CumulativeConstraintProto* source =
4082  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CumulativeConstraintProto>(
4083  &from);
4084  if (source == nullptr) {
4085  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CumulativeConstraintProto)
4086  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4087  } else {
4088  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CumulativeConstraintProto)
4089  MergeFrom(*source);
4090  }
4091 }
4092 
4093 void CumulativeConstraintProto::MergeFrom(const CumulativeConstraintProto& from) {
4094 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4095  GOOGLE_DCHECK_NE(&from, this);
4096  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4097  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4098  (void) cached_has_bits;
4099 
4100  intervals_.MergeFrom(from.intervals_);
4101  demands_.MergeFrom(from.demands_);
4102  if (from.capacity() != 0) {
4103  _internal_set_capacity(from._internal_capacity());
4104  }
4105 }
4106 
4107 void CumulativeConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4108 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4109  if (&from == this) return;
4110  Clear();
4111  MergeFrom(from);
4112 }
4113 
4114 void CumulativeConstraintProto::CopyFrom(const CumulativeConstraintProto& from) {
4115 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4116  if (&from == this) return;
4117  Clear();
4118  MergeFrom(from);
4119 }
4120 
4121 bool CumulativeConstraintProto::IsInitialized() const {
4122  return true;
4123 }
4124 
4125 void CumulativeConstraintProto::InternalSwap(CumulativeConstraintProto* other) {
4126  using std::swap;
4127  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4128  intervals_.InternalSwap(&other->intervals_);
4129  demands_.InternalSwap(&other->demands_);
4130  swap(capacity_, other->capacity_);
4131 }
4132 
4133 ::PROTOBUF_NAMESPACE_ID::Metadata CumulativeConstraintProto::GetMetadata() const {
4134  return GetMetadataStatic();
4135 }
4136 
4137 
4138 // ===================================================================
4139 
4141  public:
4142 };
4143 
4144 ReservoirConstraintProto::ReservoirConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4145  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4146  times_(arena),
4147  demands_(arena),
4148  actives_(arena) {
4149  SharedCtor();
4150  RegisterArenaDtor(arena);
4151  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ReservoirConstraintProto)
4152 }
4153 ReservoirConstraintProto::ReservoirConstraintProto(const ReservoirConstraintProto& from)
4154  : ::PROTOBUF_NAMESPACE_ID::Message(),
4155  times_(from.times_),
4156  demands_(from.demands_),
4157  actives_(from.actives_) {
4158  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4159  ::memcpy(&min_level_, &from.min_level_,
4160  static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4161  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4162  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ReservoirConstraintProto)
4163 }
4164 
4165 void ReservoirConstraintProto::SharedCtor() {
4166  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
4167  reinterpret_cast<char*>(&min_level_) - reinterpret_cast<char*>(this)),
4168  0, static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4169  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4170 }
4171 
4172 ReservoirConstraintProto::~ReservoirConstraintProto() {
4173  // @@protoc_insertion_point(destructor:operations_research.sat.ReservoirConstraintProto)
4174  SharedDtor();
4175  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4176 }
4177 
4178 void ReservoirConstraintProto::SharedDtor() {
4179  GOOGLE_DCHECK(GetArena() == nullptr);
4180 }
4181 
4182 void ReservoirConstraintProto::ArenaDtor(void* object) {
4183  ReservoirConstraintProto* _this = reinterpret_cast< ReservoirConstraintProto* >(object);
4184  (void)_this;
4185 }
4186 void ReservoirConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4187 }
4188 void ReservoirConstraintProto::SetCachedSize(int size) const {
4189  _cached_size_.Set(size);
4190 }
4191 const ReservoirConstraintProto& ReservoirConstraintProto::default_instance() {
4192  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4193  return *internal_default_instance();
4194 }
4195 
4196 
4197 void ReservoirConstraintProto::Clear() {
4198 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ReservoirConstraintProto)
4199  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4200  // Prevent compiler warnings about cached_has_bits being unused
4201  (void) cached_has_bits;
4202 
4203  times_.Clear();
4204  demands_.Clear();
4205  actives_.Clear();
4206  ::memset(&min_level_, 0, static_cast<size_t>(
4207  reinterpret_cast<char*>(&max_level_) -
4208  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4209  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4210 }
4211 
4212 const char* ReservoirConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4213 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4214  while (!ctx->Done(&ptr)) {
4216  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4217  CHK_(ptr);
4218  switch (tag >> 3) {
4219  // int64 min_level = 1;
4220  case 1:
4221  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4222  min_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4223  CHK_(ptr);
4224  } else goto handle_unusual;
4225  continue;
4226  // int64 max_level = 2;
4227  case 2:
4228  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
4229  max_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4230  CHK_(ptr);
4231  } else goto handle_unusual;
4232  continue;
4233  // repeated int32 times = 3;
4234  case 3:
4235  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4236  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_times(), ptr, ctx);
4237  CHK_(ptr);
4238  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4239  _internal_add_times(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4240  CHK_(ptr);
4241  } else goto handle_unusual;
4242  continue;
4243  // repeated int64 demands = 4;
4244  case 4:
4245  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4246  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_demands(), ptr, ctx);
4247  CHK_(ptr);
4248  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4249  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4250  CHK_(ptr);
4251  } else goto handle_unusual;
4252  continue;
4253  // repeated int32 actives = 5;
4254  case 5:
4255  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4256  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_actives(), ptr, ctx);
4257  CHK_(ptr);
4258  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4259  _internal_add_actives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4260  CHK_(ptr);
4261  } else goto handle_unusual;
4262  continue;
4263  default: {
4264  handle_unusual:
4265  if ((tag & 7) == 4 || tag == 0) {
4266  ctx->SetLastTag(tag);
4267  goto success;
4268  }
4269  ptr = UnknownFieldParse(tag,
4270  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4271  ptr, ctx);
4272  CHK_(ptr != nullptr);
4273  continue;
4274  }
4275  } // switch
4276  } // while
4277 success:
4278  return ptr;
4279 failure:
4280  ptr = nullptr;
4281  goto success;
4282 #undef CHK_
4283 }
4284 
4285 ::PROTOBUF_NAMESPACE_ID::uint8* ReservoirConstraintProto::_InternalSerialize(
4286  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4287  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ReservoirConstraintProto)
4288  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4289  (void) cached_has_bits;
4290 
4291  // int64 min_level = 1;
4292  if (this->min_level() != 0) {
4293  target = stream->EnsureSpace(target);
4294  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_min_level(), target);
4295  }
4296 
4297  // int64 max_level = 2;
4298  if (this->max_level() != 0) {
4299  target = stream->EnsureSpace(target);
4300  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_max_level(), target);
4301  }
4302 
4303  // repeated int32 times = 3;
4304  {
4305  int byte_size = _times_cached_byte_size_.load(std::memory_order_relaxed);
4306  if (byte_size > 0) {
4307  target = stream->WriteInt32Packed(
4308  3, _internal_times(), byte_size, target);
4309  }
4310  }
4311 
4312  // repeated int64 demands = 4;
4313  {
4314  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4315  if (byte_size > 0) {
4316  target = stream->WriteInt64Packed(
4317  4, _internal_demands(), byte_size, target);
4318  }
4319  }
4320 
4321  // repeated int32 actives = 5;
4322  {
4323  int byte_size = _actives_cached_byte_size_.load(std::memory_order_relaxed);
4324  if (byte_size > 0) {
4325  target = stream->WriteInt32Packed(
4326  5, _internal_actives(), byte_size, target);
4327  }
4328  }
4329 
4330  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4331  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4332  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4333  }
4334  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ReservoirConstraintProto)
4335  return target;
4336 }
4337 
4338 size_t ReservoirConstraintProto::ByteSizeLong() const {
4339 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ReservoirConstraintProto)
4340  size_t total_size = 0;
4341 
4342  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4343  // Prevent compiler warnings about cached_has_bits being unused
4344  (void) cached_has_bits;
4345 
4346  // repeated int32 times = 3;
4347  {
4348  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4349  Int32Size(this->times_);
4350  if (data_size > 0) {
4351  total_size += 1 +
4352  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4353  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4354  }
4355  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4356  _times_cached_byte_size_.store(cached_size,
4357  std::memory_order_relaxed);
4358  total_size += data_size;
4359  }
4360 
4361  // repeated int64 demands = 4;
4362  {
4363  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4364  Int64Size(this->demands_);
4365  if (data_size > 0) {
4366  total_size += 1 +
4367  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4368  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4369  }
4370  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4371  _demands_cached_byte_size_.store(cached_size,
4372  std::memory_order_relaxed);
4373  total_size += data_size;
4374  }
4375 
4376  // repeated int32 actives = 5;
4377  {
4378  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4379  Int32Size(this->actives_);
4380  if (data_size > 0) {
4381  total_size += 1 +
4382  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4383  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4384  }
4385  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4386  _actives_cached_byte_size_.store(cached_size,
4387  std::memory_order_relaxed);
4388  total_size += data_size;
4389  }
4390 
4391  // int64 min_level = 1;
4392  if (this->min_level() != 0) {
4393  total_size += 1 +
4394  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4395  this->_internal_min_level());
4396  }
4397 
4398  // int64 max_level = 2;
4399  if (this->max_level() != 0) {
4400  total_size += 1 +
4401  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4402  this->_internal_max_level());
4403  }
4404 
4405  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4406  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4407  _internal_metadata_, total_size, &_cached_size_);
4408  }
4409  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4410  SetCachedSize(cached_size);
4411  return total_size;
4412 }
4413 
4414 void ReservoirConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4415 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4416  GOOGLE_DCHECK_NE(&from, this);
4417  const ReservoirConstraintProto* source =
4418  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ReservoirConstraintProto>(
4419  &from);
4420  if (source == nullptr) {
4421  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ReservoirConstraintProto)
4422  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4423  } else {
4424  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ReservoirConstraintProto)
4425  MergeFrom(*source);
4426  }
4427 }
4428 
4429 void ReservoirConstraintProto::MergeFrom(const ReservoirConstraintProto& from) {
4430 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4431  GOOGLE_DCHECK_NE(&from, this);
4432  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4433  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4434  (void) cached_has_bits;
4435 
4436  times_.MergeFrom(from.times_);
4437  demands_.MergeFrom(from.demands_);
4438  actives_.MergeFrom(from.actives_);
4439  if (from.min_level() != 0) {
4440  _internal_set_min_level(from._internal_min_level());
4441  }
4442  if (from.max_level() != 0) {
4443  _internal_set_max_level(from._internal_max_level());
4444  }
4445 }
4446 
4447 void ReservoirConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4448 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4449  if (&from == this) return;
4450  Clear();
4451  MergeFrom(from);
4452 }
4453 
4454 void ReservoirConstraintProto::CopyFrom(const ReservoirConstraintProto& from) {
4455 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4456  if (&from == this) return;
4457  Clear();
4458  MergeFrom(from);
4459 }
4460 
4461 bool ReservoirConstraintProto::IsInitialized() const {
4462  return true;
4463 }
4464 
4465 void ReservoirConstraintProto::InternalSwap(ReservoirConstraintProto* other) {
4466  using std::swap;
4467  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4468  times_.InternalSwap(&other->times_);
4469  demands_.InternalSwap(&other->demands_);
4470  actives_.InternalSwap(&other->actives_);
4471  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
4472  PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, max_level_)
4473  + sizeof(ReservoirConstraintProto::max_level_)
4474  - PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, min_level_)>(
4475  reinterpret_cast<char*>(&min_level_),
4476  reinterpret_cast<char*>(&other->min_level_));
4477 }
4478 
4479 ::PROTOBUF_NAMESPACE_ID::Metadata ReservoirConstraintProto::GetMetadata() const {
4480  return GetMetadataStatic();
4481 }
4482 
4483 
4484 // ===================================================================
4485 
4487  public:
4488 };
4489 
4490 CircuitConstraintProto::CircuitConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4491  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4492  tails_(arena),
4493  heads_(arena),
4494  literals_(arena) {
4495  SharedCtor();
4496  RegisterArenaDtor(arena);
4497  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CircuitConstraintProto)
4498 }
4499 CircuitConstraintProto::CircuitConstraintProto(const CircuitConstraintProto& from)
4500  : ::PROTOBUF_NAMESPACE_ID::Message(),
4501  tails_(from.tails_),
4502  heads_(from.heads_),
4503  literals_(from.literals_) {
4504  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4505  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CircuitConstraintProto)
4506 }
4507 
4508 void CircuitConstraintProto::SharedCtor() {
4509 }
4510 
4511 CircuitConstraintProto::~CircuitConstraintProto() {
4512  // @@protoc_insertion_point(destructor:operations_research.sat.CircuitConstraintProto)
4513  SharedDtor();
4514  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4515 }
4516 
4517 void CircuitConstraintProto::SharedDtor() {
4518  GOOGLE_DCHECK(GetArena() == nullptr);
4519 }
4520 
4521 void CircuitConstraintProto::ArenaDtor(void* object) {
4522  CircuitConstraintProto* _this = reinterpret_cast< CircuitConstraintProto* >(object);
4523  (void)_this;
4524 }
4525 void CircuitConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4526 }
4527 void CircuitConstraintProto::SetCachedSize(int size) const {
4528  _cached_size_.Set(size);
4529 }
4530 const CircuitConstraintProto& CircuitConstraintProto::default_instance() {
4531  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4532  return *internal_default_instance();
4533 }
4534 
4535 
4536 void CircuitConstraintProto::Clear() {
4537 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CircuitConstraintProto)
4538  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4539  // Prevent compiler warnings about cached_has_bits being unused
4540  (void) cached_has_bits;
4541 
4542  tails_.Clear();
4543  heads_.Clear();
4544  literals_.Clear();
4545  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4546 }
4547 
4548 const char* CircuitConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4549 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4550  while (!ctx->Done(&ptr)) {
4552  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4553  CHK_(ptr);
4554  switch (tag >> 3) {
4555  // repeated int32 tails = 3;
4556  case 3:
4557  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4558  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4559  CHK_(ptr);
4560  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4561  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4562  CHK_(ptr);
4563  } else goto handle_unusual;
4564  continue;
4565  // repeated int32 heads = 4;
4566  case 4:
4567  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4568  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4569  CHK_(ptr);
4570  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4571  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4572  CHK_(ptr);
4573  } else goto handle_unusual;
4574  continue;
4575  // repeated int32 literals = 5;
4576  case 5:
4577  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4578  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4579  CHK_(ptr);
4580  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4581  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4582  CHK_(ptr);
4583  } else goto handle_unusual;
4584  continue;
4585  default: {
4586  handle_unusual:
4587  if ((tag & 7) == 4 || tag == 0) {
4588  ctx->SetLastTag(tag);
4589  goto success;
4590  }
4591  ptr = UnknownFieldParse(tag,
4592  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4593  ptr, ctx);
4594  CHK_(ptr != nullptr);
4595  continue;
4596  }
4597  } // switch
4598  } // while
4599 success:
4600  return ptr;
4601 failure:
4602  ptr = nullptr;
4603  goto success;
4604 #undef CHK_
4605 }
4606 
4607 ::PROTOBUF_NAMESPACE_ID::uint8* CircuitConstraintProto::_InternalSerialize(
4608  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4609  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CircuitConstraintProto)
4610  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4611  (void) cached_has_bits;
4612 
4613  // repeated int32 tails = 3;
4614  {
4615  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4616  if (byte_size > 0) {
4617  target = stream->WriteInt32Packed(
4618  3, _internal_tails(), byte_size, target);
4619  }
4620  }
4621 
4622  // repeated int32 heads = 4;
4623  {
4624  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4625  if (byte_size > 0) {
4626  target = stream->WriteInt32Packed(
4627  4, _internal_heads(), byte_size, target);
4628  }
4629  }
4630 
4631  // repeated int32 literals = 5;
4632  {
4633  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4634  if (byte_size > 0) {
4635  target = stream->WriteInt32Packed(
4636  5, _internal_literals(), byte_size, target);
4637  }
4638  }
4639 
4640  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4641  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4642  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4643  }
4644  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CircuitConstraintProto)
4645  return target;
4646 }
4647 
4648 size_t CircuitConstraintProto::ByteSizeLong() const {
4649 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CircuitConstraintProto)
4650  size_t total_size = 0;
4651 
4652  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4653  // Prevent compiler warnings about cached_has_bits being unused
4654  (void) cached_has_bits;
4655 
4656  // repeated int32 tails = 3;
4657  {
4658  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4659  Int32Size(this->tails_);
4660  if (data_size > 0) {
4661  total_size += 1 +
4662  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4663  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4664  }
4665  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4666  _tails_cached_byte_size_.store(cached_size,
4667  std::memory_order_relaxed);
4668  total_size += data_size;
4669  }
4670 
4671  // repeated int32 heads = 4;
4672  {
4673  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4674  Int32Size(this->heads_);
4675  if (data_size > 0) {
4676  total_size += 1 +
4677  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4678  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4679  }
4680  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4681  _heads_cached_byte_size_.store(cached_size,
4682  std::memory_order_relaxed);
4683  total_size += data_size;
4684  }
4685 
4686  // repeated int32 literals = 5;
4687  {
4688  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4689  Int32Size(this->literals_);
4690  if (data_size > 0) {
4691  total_size += 1 +
4692  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4693  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4694  }
4695  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4696  _literals_cached_byte_size_.store(cached_size,
4697  std::memory_order_relaxed);
4698  total_size += data_size;
4699  }
4700 
4701  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4702  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4703  _internal_metadata_, total_size, &_cached_size_);
4704  }
4705  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4706  SetCachedSize(cached_size);
4707  return total_size;
4708 }
4709 
4710 void CircuitConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4711 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CircuitConstraintProto)
4712  GOOGLE_DCHECK_NE(&from, this);
4713  const CircuitConstraintProto* source =
4714  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CircuitConstraintProto>(
4715  &from);
4716  if (source == nullptr) {
4717  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CircuitConstraintProto)
4718  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
4719  } else {
4720  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CircuitConstraintProto)
4721  MergeFrom(*source);
4722  }
4723 }
4724 
4725 void CircuitConstraintProto::MergeFrom(const CircuitConstraintProto& from) {
4726 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CircuitConstraintProto)
4727  GOOGLE_DCHECK_NE(&from, this);
4728  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4729  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4730  (void) cached_has_bits;
4731 
4732  tails_.MergeFrom(from.tails_);
4733  heads_.MergeFrom(from.heads_);
4734  literals_.MergeFrom(from.literals_);
4735 }
4736 
4737 void CircuitConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
4738 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CircuitConstraintProto)
4739  if (&from == this) return;
4740  Clear();
4741  MergeFrom(from);
4742 }
4743 
4744 void CircuitConstraintProto::CopyFrom(const CircuitConstraintProto& from) {
4745 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CircuitConstraintProto)
4746  if (&from == this) return;
4747  Clear();
4748  MergeFrom(from);
4749 }
4750 
4751 bool CircuitConstraintProto::IsInitialized() const {
4752  return true;
4753 }
4754 
4755 void CircuitConstraintProto::InternalSwap(CircuitConstraintProto* other) {
4756  using std::swap;
4757  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
4758  tails_.InternalSwap(&other->tails_);
4759  heads_.InternalSwap(&other->heads_);
4760  literals_.InternalSwap(&other->literals_);
4761 }
4762 
4763 ::PROTOBUF_NAMESPACE_ID::Metadata CircuitConstraintProto::GetMetadata() const {
4764  return GetMetadataStatic();
4765 }
4766 
4767 
4768 // ===================================================================
4769 
4771  public:
4772 };
4773 
4774 RoutesConstraintProto::RoutesConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
4775  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
4776  tails_(arena),
4777  heads_(arena),
4778  literals_(arena),
4779  demands_(arena) {
4780  SharedCtor();
4781  RegisterArenaDtor(arena);
4782  // @@protoc_insertion_point(arena_constructor:operations_research.sat.RoutesConstraintProto)
4783 }
4784 RoutesConstraintProto::RoutesConstraintProto(const RoutesConstraintProto& from)
4785  : ::PROTOBUF_NAMESPACE_ID::Message(),
4786  tails_(from.tails_),
4787  heads_(from.heads_),
4788  literals_(from.literals_),
4789  demands_(from.demands_) {
4790  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4791  capacity_ = from.capacity_;
4792  // @@protoc_insertion_point(copy_constructor:operations_research.sat.RoutesConstraintProto)
4793 }
4794 
4795 void RoutesConstraintProto::SharedCtor() {
4796  capacity_ = PROTOBUF_LONGLONG(0);
4797 }
4798 
4799 RoutesConstraintProto::~RoutesConstraintProto() {
4800  // @@protoc_insertion_point(destructor:operations_research.sat.RoutesConstraintProto)
4801  SharedDtor();
4802  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4803 }
4804 
4805 void RoutesConstraintProto::SharedDtor() {
4806  GOOGLE_DCHECK(GetArena() == nullptr);
4807 }
4808 
4809 void RoutesConstraintProto::ArenaDtor(void* object) {
4810  RoutesConstraintProto* _this = reinterpret_cast< RoutesConstraintProto* >(object);
4811  (void)_this;
4812 }
4813 void RoutesConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4814 }
4815 void RoutesConstraintProto::SetCachedSize(int size) const {
4816  _cached_size_.Set(size);
4817 }
4818 const RoutesConstraintProto& RoutesConstraintProto::default_instance() {
4819  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
4820  return *internal_default_instance();
4821 }
4822 
4823 
4824 void RoutesConstraintProto::Clear() {
4825 // @@protoc_insertion_point(message_clear_start:operations_research.sat.RoutesConstraintProto)
4826  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4827  // Prevent compiler warnings about cached_has_bits being unused
4828  (void) cached_has_bits;
4829 
4830  tails_.Clear();
4831  heads_.Clear();
4832  literals_.Clear();
4833  demands_.Clear();
4834  capacity_ = PROTOBUF_LONGLONG(0);
4835  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4836 }
4837 
4838 const char* RoutesConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4839 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4840  while (!ctx->Done(&ptr)) {
4842  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4843  CHK_(ptr);
4844  switch (tag >> 3) {
4845  // repeated int32 tails = 1;
4846  case 1:
4847  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
4848  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4849  CHK_(ptr);
4850  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
4851  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4852  CHK_(ptr);
4853  } else goto handle_unusual;
4854  continue;
4855  // repeated int32 heads = 2;
4856  case 2:
4857  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4858  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4859  CHK_(ptr);
4860  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4861  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4862  CHK_(ptr);
4863  } else goto handle_unusual;
4864  continue;
4865  // repeated int32 literals = 3;
4866  case 3:
4867  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4868  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4869  CHK_(ptr);
4870  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4871  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4872  CHK_(ptr);
4873  } else goto handle_unusual;
4874  continue;
4875  // repeated int32 demands = 4;
4876  case 4:
4877  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4878  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4879  CHK_(ptr);
4880  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4881  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4882  CHK_(ptr);
4883  } else goto handle_unusual;
4884  continue;
4885  // int64 capacity = 5;
4886  case 5:
4887  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
4888  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4889  CHK_(ptr);
4890  } else goto handle_unusual;
4891  continue;
4892  default: {
4893  handle_unusual:
4894  if ((tag & 7) == 4 || tag == 0) {
4895  ctx->SetLastTag(tag);
4896  goto success;
4897  }
4898  ptr = UnknownFieldParse(tag,
4899  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4900  ptr, ctx);
4901  CHK_(ptr != nullptr);
4902  continue;
4903  }
4904  } // switch
4905  } // while
4906 success:
4907  return ptr;
4908 failure:
4909  ptr = nullptr;
4910  goto success;
4911 #undef CHK_
4912 }
4913 
4914 ::PROTOBUF_NAMESPACE_ID::uint8* RoutesConstraintProto::_InternalSerialize(
4915  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4916  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.RoutesConstraintProto)
4917  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4918  (void) cached_has_bits;
4919 
4920  // repeated int32 tails = 1;
4921  {
4922  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4923  if (byte_size > 0) {
4924  target = stream->WriteInt32Packed(
4925  1, _internal_tails(), byte_size, target);
4926  }
4927  }
4928 
4929  // repeated int32 heads = 2;
4930  {
4931  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4932  if (byte_size > 0) {
4933  target = stream->WriteInt32Packed(
4934  2, _internal_heads(), byte_size, target);
4935  }
4936  }
4937 
4938  // repeated int32 literals = 3;
4939  {
4940  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4941  if (byte_size > 0) {
4942  target = stream->WriteInt32Packed(
4943  3, _internal_literals(), byte_size, target);
4944  }
4945  }
4946 
4947  // repeated int32 demands = 4;
4948  {
4949  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4950  if (byte_size > 0) {
4951  target = stream->WriteInt32Packed(
4952  4, _internal_demands(), byte_size, target);
4953  }
4954  }
4955 
4956  // int64 capacity = 5;
4957  if (this->capacity() != 0) {
4958  target = stream->EnsureSpace(target);
4959  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_capacity(), target);
4960  }
4961 
4962  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4963  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4964  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4965  }
4966  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.RoutesConstraintProto)
4967  return target;
4968 }
4969 
4970 size_t RoutesConstraintProto::ByteSizeLong() const {
4971 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.RoutesConstraintProto)
4972  size_t total_size = 0;
4973 
4974  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4975  // Prevent compiler warnings about cached_has_bits being unused
4976  (void) cached_has_bits;
4977 
4978  // repeated int32 tails = 1;
4979  {
4980  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4981  Int32Size(this->tails_);
4982  if (data_size > 0) {
4983  total_size += 1 +
4984  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4985  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4986  }
4987  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4988  _tails_cached_byte_size_.store(cached_size,
4989  std::memory_order_relaxed);
4990  total_size += data_size;
4991  }
4992 
4993  // repeated int32 heads = 2;
4994  {
4995  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4996  Int32Size(this->heads_);
4997  if (data_size > 0) {
4998  total_size += 1 +
4999  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5000  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5001  }
5002  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5003  _heads_cached_byte_size_.store(cached_size,
5004  std::memory_order_relaxed);
5005  total_size += data_size;
5006  }
5007 
5008  // repeated int32 literals = 3;
5009  {
5010  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5011  Int32Size(this->literals_);
5012  if (data_size > 0) {
5013  total_size += 1 +
5014  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5015  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5016  }
5017  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5018  _literals_cached_byte_size_.store(cached_size,
5019  std::memory_order_relaxed);
5020  total_size += data_size;
5021  }
5022 
5023  // repeated int32 demands = 4;
5024  {
5025  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5026  Int32Size(this->demands_);
5027  if (data_size > 0) {
5028  total_size += 1 +
5029  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5030  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5031  }
5032  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5033  _demands_cached_byte_size_.store(cached_size,
5034  std::memory_order_relaxed);
5035  total_size += data_size;
5036  }
5037 
5038  // int64 capacity = 5;
5039  if (this->capacity() != 0) {
5040  total_size += 1 +
5041  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
5042  this->_internal_capacity());
5043  }
5044 
5045  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5046  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5047  _internal_metadata_, total_size, &_cached_size_);
5048  }
5049  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5050  SetCachedSize(cached_size);
5051  return total_size;
5052 }
5053 
5054 void RoutesConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5055 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.RoutesConstraintProto)
5056  GOOGLE_DCHECK_NE(&from, this);
5057  const RoutesConstraintProto* source =
5058  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<RoutesConstraintProto>(
5059  &from);
5060  if (source == nullptr) {
5061  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.RoutesConstraintProto)
5062  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5063  } else {
5064  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.RoutesConstraintProto)
5065  MergeFrom(*source);
5066  }
5067 }
5068 
5069 void RoutesConstraintProto::MergeFrom(const RoutesConstraintProto& from) {
5070 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.RoutesConstraintProto)
5071  GOOGLE_DCHECK_NE(&from, this);
5072  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5073  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5074  (void) cached_has_bits;
5075 
5076  tails_.MergeFrom(from.tails_);
5077  heads_.MergeFrom(from.heads_);
5078  literals_.MergeFrom(from.literals_);
5079  demands_.MergeFrom(from.demands_);
5080  if (from.capacity() != 0) {
5081  _internal_set_capacity(from._internal_capacity());
5082  }
5083 }
5084 
5085 void RoutesConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5086 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.RoutesConstraintProto)
5087  if (&from == this) return;
5088  Clear();
5089  MergeFrom(from);
5090 }
5091 
5092 void RoutesConstraintProto::CopyFrom(const RoutesConstraintProto& from) {
5093 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.RoutesConstraintProto)
5094  if (&from == this) return;
5095  Clear();
5096  MergeFrom(from);
5097 }
5098 
5099 bool RoutesConstraintProto::IsInitialized() const {
5100  return true;
5101 }
5102 
5103 void RoutesConstraintProto::InternalSwap(RoutesConstraintProto* other) {
5104  using std::swap;
5105  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5106  tails_.InternalSwap(&other->tails_);
5107  heads_.InternalSwap(&other->heads_);
5108  literals_.InternalSwap(&other->literals_);
5109  demands_.InternalSwap(&other->demands_);
5110  swap(capacity_, other->capacity_);
5111 }
5112 
5113 ::PROTOBUF_NAMESPACE_ID::Metadata RoutesConstraintProto::GetMetadata() const {
5114  return GetMetadataStatic();
5115 }
5116 
5117 
5118 // ===================================================================
5119 
5121  public:
5122 };
5123 
5124 TableConstraintProto::TableConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5125  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5126  vars_(arena),
5127  values_(arena) {
5128  SharedCtor();
5129  RegisterArenaDtor(arena);
5130  // @@protoc_insertion_point(arena_constructor:operations_research.sat.TableConstraintProto)
5131 }
5132 TableConstraintProto::TableConstraintProto(const TableConstraintProto& from)
5133  : ::PROTOBUF_NAMESPACE_ID::Message(),
5134  vars_(from.vars_),
5135  values_(from.values_) {
5136  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5137  negated_ = from.negated_;
5138  // @@protoc_insertion_point(copy_constructor:operations_research.sat.TableConstraintProto)
5139 }
5140 
5141 void TableConstraintProto::SharedCtor() {
5142  negated_ = false;
5143 }
5144 
5145 TableConstraintProto::~TableConstraintProto() {
5146  // @@protoc_insertion_point(destructor:operations_research.sat.TableConstraintProto)
5147  SharedDtor();
5148  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5149 }
5150 
5151 void TableConstraintProto::SharedDtor() {
5152  GOOGLE_DCHECK(GetArena() == nullptr);
5153 }
5154 
5155 void TableConstraintProto::ArenaDtor(void* object) {
5156  TableConstraintProto* _this = reinterpret_cast< TableConstraintProto* >(object);
5157  (void)_this;
5158 }
5159 void TableConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5160 }
5161 void TableConstraintProto::SetCachedSize(int size) const {
5162  _cached_size_.Set(size);
5163 }
5164 const TableConstraintProto& TableConstraintProto::default_instance() {
5165  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5166  return *internal_default_instance();
5167 }
5168 
5169 
5170 void TableConstraintProto::Clear() {
5171 // @@protoc_insertion_point(message_clear_start:operations_research.sat.TableConstraintProto)
5172  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5173  // Prevent compiler warnings about cached_has_bits being unused
5174  (void) cached_has_bits;
5175 
5176  vars_.Clear();
5177  values_.Clear();
5178  negated_ = false;
5179  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5180 }
5181 
5182 const char* TableConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5183 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5184  while (!ctx->Done(&ptr)) {
5186  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5187  CHK_(ptr);
5188  switch (tag >> 3) {
5189  // repeated int32 vars = 1;
5190  case 1:
5191  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5192  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5193  CHK_(ptr);
5194  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5195  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5196  CHK_(ptr);
5197  } else goto handle_unusual;
5198  continue;
5199  // repeated int64 values = 2;
5200  case 2:
5201  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5202  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
5203  CHK_(ptr);
5204  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5205  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5206  CHK_(ptr);
5207  } else goto handle_unusual;
5208  continue;
5209  // bool negated = 3;
5210  case 3:
5211  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
5212  negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5213  CHK_(ptr);
5214  } else goto handle_unusual;
5215  continue;
5216  default: {
5217  handle_unusual:
5218  if ((tag & 7) == 4 || tag == 0) {
5219  ctx->SetLastTag(tag);
5220  goto success;
5221  }
5222  ptr = UnknownFieldParse(tag,
5223  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5224  ptr, ctx);
5225  CHK_(ptr != nullptr);
5226  continue;
5227  }
5228  } // switch
5229  } // while
5230 success:
5231  return ptr;
5232 failure:
5233  ptr = nullptr;
5234  goto success;
5235 #undef CHK_
5236 }
5237 
5238 ::PROTOBUF_NAMESPACE_ID::uint8* TableConstraintProto::_InternalSerialize(
5239  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5240  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.TableConstraintProto)
5241  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5242  (void) cached_has_bits;
5243 
5244  // repeated int32 vars = 1;
5245  {
5246  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5247  if (byte_size > 0) {
5248  target = stream->WriteInt32Packed(
5249  1, _internal_vars(), byte_size, target);
5250  }
5251  }
5252 
5253  // repeated int64 values = 2;
5254  {
5255  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
5256  if (byte_size > 0) {
5257  target = stream->WriteInt64Packed(
5258  2, _internal_values(), byte_size, target);
5259  }
5260  }
5261 
5262  // bool negated = 3;
5263  if (this->negated() != 0) {
5264  target = stream->EnsureSpace(target);
5265  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_negated(), target);
5266  }
5267 
5268  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5269  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5270  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5271  }
5272  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.TableConstraintProto)
5273  return target;
5274 }
5275 
5276 size_t TableConstraintProto::ByteSizeLong() const {
5277 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.TableConstraintProto)
5278  size_t total_size = 0;
5279 
5280  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5281  // Prevent compiler warnings about cached_has_bits being unused
5282  (void) cached_has_bits;
5283 
5284  // repeated int32 vars = 1;
5285  {
5286  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5287  Int32Size(this->vars_);
5288  if (data_size > 0) {
5289  total_size += 1 +
5290  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5291  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5292  }
5293  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5294  _vars_cached_byte_size_.store(cached_size,
5295  std::memory_order_relaxed);
5296  total_size += data_size;
5297  }
5298 
5299  // repeated int64 values = 2;
5300  {
5301  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5302  Int64Size(this->values_);
5303  if (data_size > 0) {
5304  total_size += 1 +
5305  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5306  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5307  }
5308  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5309  _values_cached_byte_size_.store(cached_size,
5310  std::memory_order_relaxed);
5311  total_size += data_size;
5312  }
5313 
5314  // bool negated = 3;
5315  if (this->negated() != 0) {
5316  total_size += 1 + 1;
5317  }
5318 
5319  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5320  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5321  _internal_metadata_, total_size, &_cached_size_);
5322  }
5323  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5324  SetCachedSize(cached_size);
5325  return total_size;
5326 }
5327 
5328 void TableConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5329 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.TableConstraintProto)
5330  GOOGLE_DCHECK_NE(&from, this);
5331  const TableConstraintProto* source =
5332  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<TableConstraintProto>(
5333  &from);
5334  if (source == nullptr) {
5335  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.TableConstraintProto)
5336  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5337  } else {
5338  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.TableConstraintProto)
5339  MergeFrom(*source);
5340  }
5341 }
5342 
5343 void TableConstraintProto::MergeFrom(const TableConstraintProto& from) {
5344 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.TableConstraintProto)
5345  GOOGLE_DCHECK_NE(&from, this);
5346  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5347  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5348  (void) cached_has_bits;
5349 
5350  vars_.MergeFrom(from.vars_);
5351  values_.MergeFrom(from.values_);
5352  if (from.negated() != 0) {
5353  _internal_set_negated(from._internal_negated());
5354  }
5355 }
5356 
5357 void TableConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5358 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.TableConstraintProto)
5359  if (&from == this) return;
5360  Clear();
5361  MergeFrom(from);
5362 }
5363 
5364 void TableConstraintProto::CopyFrom(const TableConstraintProto& from) {
5365 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.TableConstraintProto)
5366  if (&from == this) return;
5367  Clear();
5368  MergeFrom(from);
5369 }
5370 
5371 bool TableConstraintProto::IsInitialized() const {
5372  return true;
5373 }
5374 
5375 void TableConstraintProto::InternalSwap(TableConstraintProto* other) {
5376  using std::swap;
5377  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5378  vars_.InternalSwap(&other->vars_);
5379  values_.InternalSwap(&other->values_);
5380  swap(negated_, other->negated_);
5381 }
5382 
5383 ::PROTOBUF_NAMESPACE_ID::Metadata TableConstraintProto::GetMetadata() const {
5384  return GetMetadataStatic();
5385 }
5386 
5387 
5388 // ===================================================================
5389 
5391  public:
5392 };
5393 
5394 InverseConstraintProto::InverseConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5395  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5396  f_direct_(arena),
5397  f_inverse_(arena) {
5398  SharedCtor();
5399  RegisterArenaDtor(arena);
5400  // @@protoc_insertion_point(arena_constructor:operations_research.sat.InverseConstraintProto)
5401 }
5402 InverseConstraintProto::InverseConstraintProto(const InverseConstraintProto& from)
5403  : ::PROTOBUF_NAMESPACE_ID::Message(),
5404  f_direct_(from.f_direct_),
5405  f_inverse_(from.f_inverse_) {
5406  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5407  // @@protoc_insertion_point(copy_constructor:operations_research.sat.InverseConstraintProto)
5408 }
5409 
5410 void InverseConstraintProto::SharedCtor() {
5411 }
5412 
5413 InverseConstraintProto::~InverseConstraintProto() {
5414  // @@protoc_insertion_point(destructor:operations_research.sat.InverseConstraintProto)
5415  SharedDtor();
5416  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5417 }
5418 
5419 void InverseConstraintProto::SharedDtor() {
5420  GOOGLE_DCHECK(GetArena() == nullptr);
5421 }
5422 
5423 void InverseConstraintProto::ArenaDtor(void* object) {
5424  InverseConstraintProto* _this = reinterpret_cast< InverseConstraintProto* >(object);
5425  (void)_this;
5426 }
5427 void InverseConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5428 }
5429 void InverseConstraintProto::SetCachedSize(int size) const {
5430  _cached_size_.Set(size);
5431 }
5432 const InverseConstraintProto& InverseConstraintProto::default_instance() {
5433  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_InverseConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5434  return *internal_default_instance();
5435 }
5436 
5437 
5438 void InverseConstraintProto::Clear() {
5439 // @@protoc_insertion_point(message_clear_start:operations_research.sat.InverseConstraintProto)
5440  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5441  // Prevent compiler warnings about cached_has_bits being unused
5442  (void) cached_has_bits;
5443 
5444  f_direct_.Clear();
5445  f_inverse_.Clear();
5446  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5447 }
5448 
5449 const char* InverseConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5450 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5451  while (!ctx->Done(&ptr)) {
5453  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5454  CHK_(ptr);
5455  switch (tag >> 3) {
5456  // repeated int32 f_direct = 1;
5457  case 1:
5458  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5459  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_direct(), ptr, ctx);
5460  CHK_(ptr);
5461  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5462  _internal_add_f_direct(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5463  CHK_(ptr);
5464  } else goto handle_unusual;
5465  continue;
5466  // repeated int32 f_inverse = 2;
5467  case 2:
5468  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5469  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_inverse(), ptr, ctx);
5470  CHK_(ptr);
5471  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5472  _internal_add_f_inverse(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5473  CHK_(ptr);
5474  } else goto handle_unusual;
5475  continue;
5476  default: {
5477  handle_unusual:
5478  if ((tag & 7) == 4 || tag == 0) {
5479  ctx->SetLastTag(tag);
5480  goto success;
5481  }
5482  ptr = UnknownFieldParse(tag,
5483  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5484  ptr, ctx);
5485  CHK_(ptr != nullptr);
5486  continue;
5487  }
5488  } // switch
5489  } // while
5490 success:
5491  return ptr;
5492 failure:
5493  ptr = nullptr;
5494  goto success;
5495 #undef CHK_
5496 }
5497 
5498 ::PROTOBUF_NAMESPACE_ID::uint8* InverseConstraintProto::_InternalSerialize(
5499  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5500  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.InverseConstraintProto)
5501  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5502  (void) cached_has_bits;
5503 
5504  // repeated int32 f_direct = 1;
5505  {
5506  int byte_size = _f_direct_cached_byte_size_.load(std::memory_order_relaxed);
5507  if (byte_size > 0) {
5508  target = stream->WriteInt32Packed(
5509  1, _internal_f_direct(), byte_size, target);
5510  }
5511  }
5512 
5513  // repeated int32 f_inverse = 2;
5514  {
5515  int byte_size = _f_inverse_cached_byte_size_.load(std::memory_order_relaxed);
5516  if (byte_size > 0) {
5517  target = stream->WriteInt32Packed(
5518  2, _internal_f_inverse(), byte_size, target);
5519  }
5520  }
5521 
5522  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5523  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5524  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5525  }
5526  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.InverseConstraintProto)
5527  return target;
5528 }
5529 
5530 size_t InverseConstraintProto::ByteSizeLong() const {
5531 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.InverseConstraintProto)
5532  size_t total_size = 0;
5533 
5534  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5535  // Prevent compiler warnings about cached_has_bits being unused
5536  (void) cached_has_bits;
5537 
5538  // repeated int32 f_direct = 1;
5539  {
5540  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5541  Int32Size(this->f_direct_);
5542  if (data_size > 0) {
5543  total_size += 1 +
5544  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5545  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5546  }
5547  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5548  _f_direct_cached_byte_size_.store(cached_size,
5549  std::memory_order_relaxed);
5550  total_size += data_size;
5551  }
5552 
5553  // repeated int32 f_inverse = 2;
5554  {
5555  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5556  Int32Size(this->f_inverse_);
5557  if (data_size > 0) {
5558  total_size += 1 +
5559  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5560  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5561  }
5562  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5563  _f_inverse_cached_byte_size_.store(cached_size,
5564  std::memory_order_relaxed);
5565  total_size += data_size;
5566  }
5567 
5568  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5569  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5570  _internal_metadata_, total_size, &_cached_size_);
5571  }
5572  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5573  SetCachedSize(cached_size);
5574  return total_size;
5575 }
5576 
5577 void InverseConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5578 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.InverseConstraintProto)
5579  GOOGLE_DCHECK_NE(&from, this);
5580  const InverseConstraintProto* source =
5581  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<InverseConstraintProto>(
5582  &from);
5583  if (source == nullptr) {
5584  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.InverseConstraintProto)
5585  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5586  } else {
5587  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.InverseConstraintProto)
5588  MergeFrom(*source);
5589  }
5590 }
5591 
5592 void InverseConstraintProto::MergeFrom(const InverseConstraintProto& from) {
5593 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.InverseConstraintProto)
5594  GOOGLE_DCHECK_NE(&from, this);
5595  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5596  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5597  (void) cached_has_bits;
5598 
5599  f_direct_.MergeFrom(from.f_direct_);
5600  f_inverse_.MergeFrom(from.f_inverse_);
5601 }
5602 
5603 void InverseConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5604 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.InverseConstraintProto)
5605  if (&from == this) return;
5606  Clear();
5607  MergeFrom(from);
5608 }
5609 
5610 void InverseConstraintProto::CopyFrom(const InverseConstraintProto& from) {
5611 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.InverseConstraintProto)
5612  if (&from == this) return;
5613  Clear();
5614  MergeFrom(from);
5615 }
5616 
5617 bool InverseConstraintProto::IsInitialized() const {
5618  return true;
5619 }
5620 
5621 void InverseConstraintProto::InternalSwap(InverseConstraintProto* other) {
5622  using std::swap;
5623  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
5624  f_direct_.InternalSwap(&other->f_direct_);
5625  f_inverse_.InternalSwap(&other->f_inverse_);
5626 }
5627 
5628 ::PROTOBUF_NAMESPACE_ID::Metadata InverseConstraintProto::GetMetadata() const {
5629  return GetMetadataStatic();
5630 }
5631 
5632 
5633 // ===================================================================
5634 
5636  public:
5637 };
5638 
5639 AutomatonConstraintProto::AutomatonConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
5640  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
5641  final_states_(arena),
5642  transition_tail_(arena),
5643  transition_head_(arena),
5644  transition_label_(arena),
5645  vars_(arena) {
5646  SharedCtor();
5647  RegisterArenaDtor(arena);
5648  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AutomatonConstraintProto)
5649 }
5650 AutomatonConstraintProto::AutomatonConstraintProto(const AutomatonConstraintProto& from)
5651  : ::PROTOBUF_NAMESPACE_ID::Message(),
5652  final_states_(from.final_states_),
5653  transition_tail_(from.transition_tail_),
5654  transition_head_(from.transition_head_),
5655  transition_label_(from.transition_label_),
5656  vars_(from.vars_) {
5657  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5658  starting_state_ = from.starting_state_;
5659  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AutomatonConstraintProto)
5660 }
5661 
5662 void AutomatonConstraintProto::SharedCtor() {
5663  starting_state_ = PROTOBUF_LONGLONG(0);
5664 }
5665 
5666 AutomatonConstraintProto::~AutomatonConstraintProto() {
5667  // @@protoc_insertion_point(destructor:operations_research.sat.AutomatonConstraintProto)
5668  SharedDtor();
5669  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5670 }
5671 
5672 void AutomatonConstraintProto::SharedDtor() {
5673  GOOGLE_DCHECK(GetArena() == nullptr);
5674 }
5675 
5676 void AutomatonConstraintProto::ArenaDtor(void* object) {
5677  AutomatonConstraintProto* _this = reinterpret_cast< AutomatonConstraintProto* >(object);
5678  (void)_this;
5679 }
5680 void AutomatonConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5681 }
5682 void AutomatonConstraintProto::SetCachedSize(int size) const {
5683  _cached_size_.Set(size);
5684 }
5685 const AutomatonConstraintProto& AutomatonConstraintProto::default_instance() {
5686  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
5687  return *internal_default_instance();
5688 }
5689 
5690 
5691 void AutomatonConstraintProto::Clear() {
5692 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AutomatonConstraintProto)
5693  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5694  // Prevent compiler warnings about cached_has_bits being unused
5695  (void) cached_has_bits;
5696 
5697  final_states_.Clear();
5698  transition_tail_.Clear();
5699  transition_head_.Clear();
5700  transition_label_.Clear();
5701  vars_.Clear();
5702  starting_state_ = PROTOBUF_LONGLONG(0);
5703  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5704 }
5705 
5706 const char* AutomatonConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5707 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5708  while (!ctx->Done(&ptr)) {
5710  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5711  CHK_(ptr);
5712  switch (tag >> 3) {
5713  // int64 starting_state = 2;
5714  case 2:
5715  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
5716  starting_state_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5717  CHK_(ptr);
5718  } else goto handle_unusual;
5719  continue;
5720  // repeated int64 final_states = 3;
5721  case 3:
5722  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
5723  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_final_states(), ptr, ctx);
5724  CHK_(ptr);
5725  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
5726  _internal_add_final_states(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5727  CHK_(ptr);
5728  } else goto handle_unusual;
5729  continue;
5730  // repeated int64 transition_tail = 4;
5731  case 4:
5732  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
5733  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_tail(), ptr, ctx);
5734  CHK_(ptr);
5735  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
5736  _internal_add_transition_tail(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5737  CHK_(ptr);
5738  } else goto handle_unusual;
5739  continue;
5740  // repeated int64 transition_head = 5;
5741  case 5:
5742  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
5743  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_head(), ptr, ctx);
5744  CHK_(ptr);
5745  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
5746  _internal_add_transition_head(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5747  CHK_(ptr);
5748  } else goto handle_unusual;
5749  continue;
5750  // repeated int64 transition_label = 6;
5751  case 6:
5752  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
5753  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_label(), ptr, ctx);
5754  CHK_(ptr);
5755  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48) {
5756  _internal_add_transition_label(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5757  CHK_(ptr);
5758  } else goto handle_unusual;
5759  continue;
5760  // repeated int32 vars = 7;
5761  case 7:
5762  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
5763  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5764  CHK_(ptr);
5765  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
5766  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5767  CHK_(ptr);
5768  } else goto handle_unusual;
5769  continue;
5770  default: {
5771  handle_unusual:
5772  if ((tag & 7) == 4 || tag == 0) {
5773  ctx->SetLastTag(tag);
5774  goto success;
5775  }
5776  ptr = UnknownFieldParse(tag,
5777  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5778  ptr, ctx);
5779  CHK_(ptr != nullptr);
5780  continue;
5781  }
5782  } // switch
5783  } // while
5784 success:
5785  return ptr;
5786 failure:
5787  ptr = nullptr;
5788  goto success;
5789 #undef CHK_
5790 }
5791 
5792 ::PROTOBUF_NAMESPACE_ID::uint8* AutomatonConstraintProto::_InternalSerialize(
5793  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5794  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AutomatonConstraintProto)
5795  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5796  (void) cached_has_bits;
5797 
5798  // int64 starting_state = 2;
5799  if (this->starting_state() != 0) {
5800  target = stream->EnsureSpace(target);
5801  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_starting_state(), target);
5802  }
5803 
5804  // repeated int64 final_states = 3;
5805  {
5806  int byte_size = _final_states_cached_byte_size_.load(std::memory_order_relaxed);
5807  if (byte_size > 0) {
5808  target = stream->WriteInt64Packed(
5809  3, _internal_final_states(), byte_size, target);
5810  }
5811  }
5812 
5813  // repeated int64 transition_tail = 4;
5814  {
5815  int byte_size = _transition_tail_cached_byte_size_.load(std::memory_order_relaxed);
5816  if (byte_size > 0) {
5817  target = stream->WriteInt64Packed(
5818  4, _internal_transition_tail(), byte_size, target);
5819  }
5820  }
5821 
5822  // repeated int64 transition_head = 5;
5823  {
5824  int byte_size = _transition_head_cached_byte_size_.load(std::memory_order_relaxed);
5825  if (byte_size > 0) {
5826  target = stream->WriteInt64Packed(
5827  5, _internal_transition_head(), byte_size, target);
5828  }
5829  }
5830 
5831  // repeated int64 transition_label = 6;
5832  {
5833  int byte_size = _transition_label_cached_byte_size_.load(std::memory_order_relaxed);
5834  if (byte_size > 0) {
5835  target = stream->WriteInt64Packed(
5836  6, _internal_transition_label(), byte_size, target);
5837  }
5838  }
5839 
5840  // repeated int32 vars = 7;
5841  {
5842  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5843  if (byte_size > 0) {
5844  target = stream->WriteInt32Packed(
5845  7, _internal_vars(), byte_size, target);
5846  }
5847  }
5848 
5849  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5850  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5851  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5852  }
5853  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AutomatonConstraintProto)
5854  return target;
5855 }
5856 
5857 size_t AutomatonConstraintProto::ByteSizeLong() const {
5858 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AutomatonConstraintProto)
5859  size_t total_size = 0;
5860 
5861  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5862  // Prevent compiler warnings about cached_has_bits being unused
5863  (void) cached_has_bits;
5864 
5865  // repeated int64 final_states = 3;
5866  {
5867  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5868  Int64Size(this->final_states_);
5869  if (data_size > 0) {
5870  total_size += 1 +
5871  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5872  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5873  }
5874  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5875  _final_states_cached_byte_size_.store(cached_size,
5876  std::memory_order_relaxed);
5877  total_size += data_size;
5878  }
5879 
5880  // repeated int64 transition_tail = 4;
5881  {
5882  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5883  Int64Size(this->transition_tail_);
5884  if (data_size > 0) {
5885  total_size += 1 +
5886  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5887  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5888  }
5889  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5890  _transition_tail_cached_byte_size_.store(cached_size,
5891  std::memory_order_relaxed);
5892  total_size += data_size;
5893  }
5894 
5895  // repeated int64 transition_head = 5;
5896  {
5897  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5898  Int64Size(this->transition_head_);
5899  if (data_size > 0) {
5900  total_size += 1 +
5901  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5902  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5903  }
5904  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5905  _transition_head_cached_byte_size_.store(cached_size,
5906  std::memory_order_relaxed);
5907  total_size += data_size;
5908  }
5909 
5910  // repeated int64 transition_label = 6;
5911  {
5912  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5913  Int64Size(this->transition_label_);
5914  if (data_size > 0) {
5915  total_size += 1 +
5916  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5917  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5918  }
5919  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5920  _transition_label_cached_byte_size_.store(cached_size,
5921  std::memory_order_relaxed);
5922  total_size += data_size;
5923  }
5924 
5925  // repeated int32 vars = 7;
5926  {
5927  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5928  Int32Size(this->vars_);
5929  if (data_size > 0) {
5930  total_size += 1 +
5931  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5932  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5933  }
5934  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5935  _vars_cached_byte_size_.store(cached_size,
5936  std::memory_order_relaxed);
5937  total_size += data_size;
5938  }
5939 
5940  // int64 starting_state = 2;
5941  if (this->starting_state() != 0) {
5942  total_size += 1 +
5943  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
5944  this->_internal_starting_state());
5945  }
5946 
5947  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5948  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5949  _internal_metadata_, total_size, &_cached_size_);
5950  }
5951  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5952  SetCachedSize(cached_size);
5953  return total_size;
5954 }
5955 
5956 void AutomatonConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5957 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.AutomatonConstraintProto)
5958  GOOGLE_DCHECK_NE(&from, this);
5959  const AutomatonConstraintProto* source =
5960  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<AutomatonConstraintProto>(
5961  &from);
5962  if (source == nullptr) {
5963  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.AutomatonConstraintProto)
5964  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
5965  } else {
5966  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.AutomatonConstraintProto)
5967  MergeFrom(*source);
5968  }
5969 }
5970 
5971 void AutomatonConstraintProto::MergeFrom(const AutomatonConstraintProto& from) {
5972 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AutomatonConstraintProto)
5973  GOOGLE_DCHECK_NE(&from, this);
5974  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5975  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5976  (void) cached_has_bits;
5977 
5978  final_states_.MergeFrom(from.final_states_);
5979  transition_tail_.MergeFrom(from.transition_tail_);
5980  transition_head_.MergeFrom(from.transition_head_);
5981  transition_label_.MergeFrom(from.transition_label_);
5982  vars_.MergeFrom(from.vars_);
5983  if (from.starting_state() != 0) {
5984  _internal_set_starting_state(from._internal_starting_state());
5985  }
5986 }
5987 
5988 void AutomatonConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
5989 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.AutomatonConstraintProto)
5990  if (&from == this) return;
5991  Clear();
5992  MergeFrom(from);
5993 }
5994 
5995 void AutomatonConstraintProto::CopyFrom(const AutomatonConstraintProto& from) {
5996 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AutomatonConstraintProto)
5997  if (&from == this) return;
5998  Clear();
5999  MergeFrom(from);
6000 }
6001 
6002 bool AutomatonConstraintProto::IsInitialized() const {
6003  return true;
6004 }
6005 
6006 void AutomatonConstraintProto::InternalSwap(AutomatonConstraintProto* other) {
6007  using std::swap;
6008  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
6009  final_states_.InternalSwap(&other->final_states_);
6010  transition_tail_.InternalSwap(&other->transition_tail_);
6011  transition_head_.InternalSwap(&other->transition_head_);
6012  transition_label_.InternalSwap(&other->transition_label_);
6013  vars_.InternalSwap(&other->vars_);
6014  swap(starting_state_, other->starting_state_);
6015 }
6016 
6017 ::PROTOBUF_NAMESPACE_ID::Metadata AutomatonConstraintProto::GetMetadata() const {
6018  return GetMetadataStatic();
6019 }
6020 
6021 
6022 // ===================================================================
6023 
6025  public:
6026  static const ::operations_research::sat::BoolArgumentProto& bool_or(const ConstraintProto* msg);
6027  static const ::operations_research::sat::BoolArgumentProto& bool_and(const ConstraintProto* msg);
6028  static const ::operations_research::sat::BoolArgumentProto& at_most_one(const ConstraintProto* msg);
6029  static const ::operations_research::sat::BoolArgumentProto& exactly_one(const ConstraintProto* msg);
6030  static const ::operations_research::sat::BoolArgumentProto& bool_xor(const ConstraintProto* msg);
6031  static const ::operations_research::sat::IntegerArgumentProto& int_div(const ConstraintProto* msg);
6032  static const ::operations_research::sat::IntegerArgumentProto& int_mod(const ConstraintProto* msg);
6033  static const ::operations_research::sat::IntegerArgumentProto& int_max(const ConstraintProto* msg);
6034  static const ::operations_research::sat::LinearArgumentProto& lin_max(const ConstraintProto* msg);
6035  static const ::operations_research::sat::IntegerArgumentProto& int_min(const ConstraintProto* msg);
6036  static const ::operations_research::sat::LinearArgumentProto& lin_min(const ConstraintProto* msg);
6037  static const ::operations_research::sat::IntegerArgumentProto& int_prod(const ConstraintProto* msg);
6038  static const ::operations_research::sat::LinearConstraintProto& linear(const ConstraintProto* msg);
6039  static const ::operations_research::sat::AllDifferentConstraintProto& all_diff(const ConstraintProto* msg);
6040  static const ::operations_research::sat::ElementConstraintProto& element(const ConstraintProto* msg);
6041  static const ::operations_research::sat::CircuitConstraintProto& circuit(const ConstraintProto* msg);
6042  static const ::operations_research::sat::RoutesConstraintProto& routes(const ConstraintProto* msg);
6043  static const ::operations_research::sat::TableConstraintProto& table(const ConstraintProto* msg);
6044  static const ::operations_research::sat::AutomatonConstraintProto& automaton(const ConstraintProto* msg);
6045  static const ::operations_research::sat::InverseConstraintProto& inverse(const ConstraintProto* msg);
6046  static const ::operations_research::sat::ReservoirConstraintProto& reservoir(const ConstraintProto* msg);
6047  static const ::operations_research::sat::IntervalConstraintProto& interval(const ConstraintProto* msg);
6048  static const ::operations_research::sat::NoOverlapConstraintProto& no_overlap(const ConstraintProto* msg);
6049  static const ::operations_research::sat::NoOverlap2DConstraintProto& no_overlap_2d(const ConstraintProto* msg);
6050  static const ::operations_research::sat::CumulativeConstraintProto& cumulative(const ConstraintProto* msg);
6051 };
6052 
6053 const ::operations_research::sat::BoolArgumentProto&
6054 ConstraintProto::_Internal::bool_or(const ConstraintProto* msg) {
6055  return *msg->constraint_.bool_or_;
6056 }
6057 const ::operations_research::sat::BoolArgumentProto&
6058 ConstraintProto::_Internal::bool_and(const ConstraintProto* msg) {
6059  return *msg->constraint_.bool_and_;
6060 }
6061 const ::operations_research::sat::BoolArgumentProto&
6062 ConstraintProto::_Internal::at_most_one(const ConstraintProto* msg) {
6063  return *msg->constraint_.at_most_one_;
6064 }
6065 const ::operations_research::sat::BoolArgumentProto&
6066 ConstraintProto::_Internal::exactly_one(const ConstraintProto* msg) {
6067  return *msg->constraint_.exactly_one_;
6068 }
6069 const ::operations_research::sat::BoolArgumentProto&
6070 ConstraintProto::_Internal::bool_xor(const ConstraintProto* msg) {
6071  return *msg->constraint_.bool_xor_;
6072 }
6073 const ::operations_research::sat::IntegerArgumentProto&
6074 ConstraintProto::_Internal::int_div(const ConstraintProto* msg) {
6075  return *msg->constraint_.int_div_;
6076 }
6077 const ::operations_research::sat::IntegerArgumentProto&
6078 ConstraintProto::_Internal::int_mod(const ConstraintProto* msg) {
6079  return *msg->constraint_.int_mod_;
6080 }
6081 const ::operations_research::sat::IntegerArgumentProto&
6082 ConstraintProto::_Internal::int_max(const ConstraintProto* msg) {
6083  return *msg->constraint_.int_max_;
6084 }
6085 const ::operations_research::sat::LinearArgumentProto&
6086 ConstraintProto::_Internal::lin_max(const ConstraintProto* msg) {
6087  return *msg->constraint_.lin_max_;
6088 }
6089 const ::operations_research::sat::IntegerArgumentProto&
6090 ConstraintProto::_Internal::int_min(const ConstraintProto* msg) {
6091  return *msg->constraint_.int_min_;
6092 }
6093 const ::operations_research::sat::LinearArgumentProto&
6094 ConstraintProto::_Internal::lin_min(const ConstraintProto* msg) {
6095  return *msg->constraint_.lin_min_;
6096 }
6097 const ::operations_research::sat::IntegerArgumentProto&
6098 ConstraintProto::_Internal::int_prod(const ConstraintProto* msg) {
6099  return *msg->constraint_.int_prod_;
6100 }
6101 const ::operations_research::sat::LinearConstraintProto&
6102 ConstraintProto::_Internal::linear(const ConstraintProto* msg) {
6103  return *msg->constraint_.linear_;
6104 }
6105 const ::operations_research::sat::AllDifferentConstraintProto&
6106 ConstraintProto::_Internal::all_diff(const ConstraintProto* msg) {
6107  return *msg->constraint_.all_diff_;
6108 }
6109 const ::operations_research::sat::ElementConstraintProto&
6110 ConstraintProto::_Internal::element(const ConstraintProto* msg) {
6111  return *msg->constraint_.element_;
6112 }
6113 const ::operations_research::sat::CircuitConstraintProto&
6114 ConstraintProto::_Internal::circuit(const ConstraintProto* msg) {
6115  return *msg->constraint_.circuit_;
6116 }
6117 const ::operations_research::sat::RoutesConstraintProto&
6118 ConstraintProto::_Internal::routes(const ConstraintProto* msg) {
6119  return *msg->constraint_.routes_;
6120 }
6121 const ::operations_research::sat::TableConstraintProto&
6122 ConstraintProto::_Internal::table(const ConstraintProto* msg) {
6123  return *msg->constraint_.table_;
6124 }
6125 const ::operations_research::sat::AutomatonConstraintProto&
6126 ConstraintProto::_Internal::automaton(const ConstraintProto* msg) {
6127  return *msg->constraint_.automaton_;
6128 }
6129 const ::operations_research::sat::InverseConstraintProto&
6130 ConstraintProto::_Internal::inverse(const ConstraintProto* msg) {
6131  return *msg->constraint_.inverse_;
6132 }
6133 const ::operations_research::sat::ReservoirConstraintProto&
6134 ConstraintProto::_Internal::reservoir(const ConstraintProto* msg) {
6135  return *msg->constraint_.reservoir_;
6136 }
6137 const ::operations_research::sat::IntervalConstraintProto&
6138 ConstraintProto::_Internal::interval(const ConstraintProto* msg) {
6139  return *msg->constraint_.interval_;
6140 }
6141 const ::operations_research::sat::NoOverlapConstraintProto&
6142 ConstraintProto::_Internal::no_overlap(const ConstraintProto* msg) {
6143  return *msg->constraint_.no_overlap_;
6144 }
6145 const ::operations_research::sat::NoOverlap2DConstraintProto&
6146 ConstraintProto::_Internal::no_overlap_2d(const ConstraintProto* msg) {
6147  return *msg->constraint_.no_overlap_2d_;
6148 }
6149 const ::operations_research::sat::CumulativeConstraintProto&
6150 ConstraintProto::_Internal::cumulative(const ConstraintProto* msg) {
6151  return *msg->constraint_.cumulative_;
6152 }
6153 void ConstraintProto::set_allocated_bool_or(::operations_research::sat::BoolArgumentProto* bool_or) {
6154  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6155  clear_constraint();
6156  if (bool_or) {
6157  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6158  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_or);
6159  if (message_arena != submessage_arena) {
6160  bool_or = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6161  message_arena, bool_or, submessage_arena);
6162  }
6163  set_has_bool_or();
6164  constraint_.bool_or_ = bool_or;
6165  }
6166  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_or)
6167 }
6168 void ConstraintProto::set_allocated_bool_and(::operations_research::sat::BoolArgumentProto* bool_and) {
6169  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6170  clear_constraint();
6171  if (bool_and) {
6172  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6173  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_and);
6174  if (message_arena != submessage_arena) {
6175  bool_and = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6176  message_arena, bool_and, submessage_arena);
6177  }
6178  set_has_bool_and();
6179  constraint_.bool_and_ = bool_and;
6180  }
6181  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_and)
6182 }
6183 void ConstraintProto::set_allocated_at_most_one(::operations_research::sat::BoolArgumentProto* at_most_one) {
6184  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6185  clear_constraint();
6186  if (at_most_one) {
6187  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6188  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(at_most_one);
6189  if (message_arena != submessage_arena) {
6190  at_most_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6191  message_arena, at_most_one, submessage_arena);
6192  }
6193  set_has_at_most_one();
6194  constraint_.at_most_one_ = at_most_one;
6195  }
6196  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.at_most_one)
6197 }
6198 void ConstraintProto::set_allocated_exactly_one(::operations_research::sat::BoolArgumentProto* exactly_one) {
6199  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6200  clear_constraint();
6201  if (exactly_one) {
6202  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6203  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(exactly_one);
6204  if (message_arena != submessage_arena) {
6205  exactly_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6206  message_arena, exactly_one, submessage_arena);
6207  }
6208  set_has_exactly_one();
6209  constraint_.exactly_one_ = exactly_one;
6210  }
6211  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.exactly_one)
6212 }
6213 void ConstraintProto::set_allocated_bool_xor(::operations_research::sat::BoolArgumentProto* bool_xor) {
6214  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6215  clear_constraint();
6216  if (bool_xor) {
6217  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6218  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(bool_xor);
6219  if (message_arena != submessage_arena) {
6220  bool_xor = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6221  message_arena, bool_xor, submessage_arena);
6222  }
6223  set_has_bool_xor();
6224  constraint_.bool_xor_ = bool_xor;
6225  }
6226  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_xor)
6227 }
6228 void ConstraintProto::set_allocated_int_div(::operations_research::sat::IntegerArgumentProto* int_div) {
6229  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6230  clear_constraint();
6231  if (int_div) {
6232  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6233  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_div);
6234  if (message_arena != submessage_arena) {
6235  int_div = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6236  message_arena, int_div, submessage_arena);
6237  }
6238  set_has_int_div();
6239  constraint_.int_div_ = int_div;
6240  }
6241  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_div)
6242 }
6243 void ConstraintProto::set_allocated_int_mod(::operations_research::sat::IntegerArgumentProto* int_mod) {
6244  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6245  clear_constraint();
6246  if (int_mod) {
6247  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6248  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_mod);
6249  if (message_arena != submessage_arena) {
6250  int_mod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6251  message_arena, int_mod, submessage_arena);
6252  }
6253  set_has_int_mod();
6254  constraint_.int_mod_ = int_mod;
6255  }
6256  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_mod)
6257 }
6258 void ConstraintProto::set_allocated_int_max(::operations_research::sat::IntegerArgumentProto* int_max) {
6259  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6260  clear_constraint();
6261  if (int_max) {
6262  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6263  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_max);
6264  if (message_arena != submessage_arena) {
6265  int_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6266  message_arena, int_max, submessage_arena);
6267  }
6268  set_has_int_max();
6269  constraint_.int_max_ = int_max;
6270  }
6271  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_max)
6272 }
6273 void ConstraintProto::set_allocated_lin_max(::operations_research::sat::LinearArgumentProto* lin_max) {
6274  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6275  clear_constraint();
6276  if (lin_max) {
6277  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6278  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_max);
6279  if (message_arena != submessage_arena) {
6280  lin_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6281  message_arena, lin_max, submessage_arena);
6282  }
6283  set_has_lin_max();
6284  constraint_.lin_max_ = lin_max;
6285  }
6286  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_max)
6287 }
6288 void ConstraintProto::set_allocated_int_min(::operations_research::sat::IntegerArgumentProto* int_min) {
6289  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6290  clear_constraint();
6291  if (int_min) {
6292  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6293  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_min);
6294  if (message_arena != submessage_arena) {
6295  int_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6296  message_arena, int_min, submessage_arena);
6297  }
6298  set_has_int_min();
6299  constraint_.int_min_ = int_min;
6300  }
6301  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_min)
6302 }
6303 void ConstraintProto::set_allocated_lin_min(::operations_research::sat::LinearArgumentProto* lin_min) {
6304  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6305  clear_constraint();
6306  if (lin_min) {
6307  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6308  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(lin_min);
6309  if (message_arena != submessage_arena) {
6310  lin_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6311  message_arena, lin_min, submessage_arena);
6312  }
6313  set_has_lin_min();
6314  constraint_.lin_min_ = lin_min;
6315  }
6316  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_min)
6317 }
6318 void ConstraintProto::set_allocated_int_prod(::operations_research::sat::IntegerArgumentProto* int_prod) {
6319  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6320  clear_constraint();
6321  if (int_prod) {
6322  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6323  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(int_prod);
6324  if (message_arena != submessage_arena) {
6325  int_prod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6326  message_arena, int_prod, submessage_arena);
6327  }
6328  set_has_int_prod();
6329  constraint_.int_prod_ = int_prod;
6330  }
6331  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_prod)
6332 }
6333 void ConstraintProto::set_allocated_linear(::operations_research::sat::LinearConstraintProto* linear) {
6334  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6335  clear_constraint();
6336  if (linear) {
6337  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6338  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(linear);
6339  if (message_arena != submessage_arena) {
6340  linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6341  message_arena, linear, submessage_arena);
6342  }
6343  set_has_linear();
6344  constraint_.linear_ = linear;
6345  }
6346  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.linear)
6347 }
6348 void ConstraintProto::set_allocated_all_diff(::operations_research::sat::AllDifferentConstraintProto* all_diff) {
6349  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6350  clear_constraint();
6351  if (all_diff) {
6352  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6353  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(all_diff);
6354  if (message_arena != submessage_arena) {
6355  all_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6356  message_arena, all_diff, submessage_arena);
6357  }
6358  set_has_all_diff();
6359  constraint_.all_diff_ = all_diff;
6360  }
6361  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.all_diff)
6362 }
6363 void ConstraintProto::set_allocated_element(::operations_research::sat::ElementConstraintProto* element) {
6364  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6365  clear_constraint();
6366  if (element) {
6367  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6368  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(element);
6369  if (message_arena != submessage_arena) {
6370  element = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6371  message_arena, element, submessage_arena);
6372  }
6373  set_has_element();
6374  constraint_.element_ = element;
6375  }
6376  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.element)
6377 }
6378 void ConstraintProto::set_allocated_circuit(::operations_research::sat::CircuitConstraintProto* circuit) {
6379  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6380  clear_constraint();
6381  if (circuit) {
6382  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6383  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(circuit);
6384  if (message_arena != submessage_arena) {
6385  circuit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6386  message_arena, circuit, submessage_arena);
6387  }
6388  set_has_circuit();
6389  constraint_.circuit_ = circuit;
6390  }
6391  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.circuit)
6392 }
6393 void ConstraintProto::set_allocated_routes(::operations_research::sat::RoutesConstraintProto* routes) {
6394  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6395  clear_constraint();
6396  if (routes) {
6397  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6398  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(routes);
6399  if (message_arena != submessage_arena) {
6400  routes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6401  message_arena, routes, submessage_arena);
6402  }
6403  set_has_routes();
6404  constraint_.routes_ = routes;
6405  }
6406  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.routes)
6407 }
6408 void ConstraintProto::set_allocated_table(::operations_research::sat::TableConstraintProto* table) {
6409  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6410  clear_constraint();
6411  if (table) {
6412  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6413  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(table);
6414  if (message_arena != submessage_arena) {
6415  table = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6416  message_arena, table, submessage_arena);
6417  }
6418  set_has_table();
6419  constraint_.table_ = table;
6420  }
6421  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.table)
6422 }
6423 void ConstraintProto::set_allocated_automaton(::operations_research::sat::AutomatonConstraintProto* automaton) {
6424  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6425  clear_constraint();
6426  if (automaton) {
6427  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6428  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(automaton);
6429  if (message_arena != submessage_arena) {
6430  automaton = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6431  message_arena, automaton, submessage_arena);
6432  }
6433  set_has_automaton();
6434  constraint_.automaton_ = automaton;
6435  }
6436  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.automaton)
6437 }
6438 void ConstraintProto::set_allocated_inverse(::operations_research::sat::InverseConstraintProto* inverse) {
6439  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6440  clear_constraint();
6441  if (inverse) {
6442  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6443  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(inverse);
6444  if (message_arena != submessage_arena) {
6445  inverse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6446  message_arena, inverse, submessage_arena);
6447  }
6448  set_has_inverse();
6449  constraint_.inverse_ = inverse;
6450  }
6451  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.inverse)
6452 }
6453 void ConstraintProto::set_allocated_reservoir(::operations_research::sat::ReservoirConstraintProto* reservoir) {
6454  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6455  clear_constraint();
6456  if (reservoir) {
6457  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6458  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(reservoir);
6459  if (message_arena != submessage_arena) {
6460  reservoir = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6461  message_arena, reservoir, submessage_arena);
6462  }
6463  set_has_reservoir();
6464  constraint_.reservoir_ = reservoir;
6465  }
6466  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.reservoir)
6467 }
6468 void ConstraintProto::set_allocated_interval(::operations_research::sat::IntervalConstraintProto* interval) {
6469  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6470  clear_constraint();
6471  if (interval) {
6472  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6473  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(interval);
6474  if (message_arena != submessage_arena) {
6475  interval = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6476  message_arena, interval, submessage_arena);
6477  }
6478  set_has_interval();
6479  constraint_.interval_ = interval;
6480  }
6481  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.interval)
6482 }
6483 void ConstraintProto::set_allocated_no_overlap(::operations_research::sat::NoOverlapConstraintProto* no_overlap) {
6484  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6485  clear_constraint();
6486  if (no_overlap) {
6487  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6488  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap);
6489  if (message_arena != submessage_arena) {
6490  no_overlap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6491  message_arena, no_overlap, submessage_arena);
6492  }
6493  set_has_no_overlap();
6494  constraint_.no_overlap_ = no_overlap;
6495  }
6496  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap)
6497 }
6498 void ConstraintProto::set_allocated_no_overlap_2d(::operations_research::sat::NoOverlap2DConstraintProto* no_overlap_2d) {
6499  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6500  clear_constraint();
6501  if (no_overlap_2d) {
6502  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6503  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(no_overlap_2d);
6504  if (message_arena != submessage_arena) {
6505  no_overlap_2d = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6506  message_arena, no_overlap_2d, submessage_arena);
6507  }
6508  set_has_no_overlap_2d();
6509  constraint_.no_overlap_2d_ = no_overlap_2d;
6510  }
6511  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap_2d)
6512 }
6513 void ConstraintProto::set_allocated_cumulative(::operations_research::sat::CumulativeConstraintProto* cumulative) {
6514  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
6515  clear_constraint();
6516  if (cumulative) {
6517  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6518  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(cumulative);
6519  if (message_arena != submessage_arena) {
6520  cumulative = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6521  message_arena, cumulative, submessage_arena);
6522  }
6523  set_has_cumulative();
6524  constraint_.cumulative_ = cumulative;
6525  }
6526  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.cumulative)
6527 }
6528 ConstraintProto::ConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
6529  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
6530  enforcement_literal_(arena) {
6531  SharedCtor();
6532  RegisterArenaDtor(arena);
6533  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ConstraintProto)
6534 }
6535 ConstraintProto::ConstraintProto(const ConstraintProto& from)
6536  : ::PROTOBUF_NAMESPACE_ID::Message(),
6537  enforcement_literal_(from.enforcement_literal_) {
6538  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6539  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6540  if (!from._internal_name().empty()) {
6541  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
6542  GetArena());
6543  }
6544  clear_has_constraint();
6545  switch (from.constraint_case()) {
6546  case kBoolOr: {
6547  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
6548  break;
6549  }
6550  case kBoolAnd: {
6551  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
6552  break;
6553  }
6554  case kAtMostOne: {
6555  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
6556  break;
6557  }
6558  case kExactlyOne: {
6559  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
6560  break;
6561  }
6562  case kBoolXor: {
6563  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
6564  break;
6565  }
6566  case kIntDiv: {
6567  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
6568  break;
6569  }
6570  case kIntMod: {
6571  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
6572  break;
6573  }
6574  case kIntMax: {
6575  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
6576  break;
6577  }
6578  case kLinMax: {
6579  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
6580  break;
6581  }
6582  case kIntMin: {
6583  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
6584  break;
6585  }
6586  case kLinMin: {
6587  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
6588  break;
6589  }
6590  case kIntProd: {
6591  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
6592  break;
6593  }
6594  case kLinear: {
6595  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
6596  break;
6597  }
6598  case kAllDiff: {
6599  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
6600  break;
6601  }
6602  case kElement: {
6603  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
6604  break;
6605  }
6606  case kCircuit: {
6607  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
6608  break;
6609  }
6610  case kRoutes: {
6611  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
6612  break;
6613  }
6614  case kTable: {
6615  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
6616  break;
6617  }
6618  case kAutomaton: {
6619  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
6620  break;
6621  }
6622  case kInverse: {
6623  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
6624  break;
6625  }
6626  case kReservoir: {
6627  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
6628  break;
6629  }
6630  case kInterval: {
6631  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
6632  break;
6633  }
6634  case kNoOverlap: {
6635  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
6636  break;
6637  }
6638  case kNoOverlap2D: {
6639  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
6640  break;
6641  }
6642  case kCumulative: {
6643  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
6644  break;
6645  }
6646  case CONSTRAINT_NOT_SET: {
6647  break;
6648  }
6649  }
6650  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ConstraintProto)
6651 }
6652 
6653 void ConstraintProto::SharedCtor() {
6654  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
6655  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6656  clear_has_constraint();
6657 }
6658 
6659 ConstraintProto::~ConstraintProto() {
6660  // @@protoc_insertion_point(destructor:operations_research.sat.ConstraintProto)
6661  SharedDtor();
6662  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6663 }
6664 
6665 void ConstraintProto::SharedDtor() {
6666  GOOGLE_DCHECK(GetArena() == nullptr);
6667  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6668  if (has_constraint()) {
6669  clear_constraint();
6670  }
6671 }
6672 
6673 void ConstraintProto::ArenaDtor(void* object) {
6674  ConstraintProto* _this = reinterpret_cast< ConstraintProto* >(object);
6675  (void)_this;
6676 }
6677 void ConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
6678 }
6679 void ConstraintProto::SetCachedSize(int size) const {
6680  _cached_size_.Set(size);
6681 }
6682 const ConstraintProto& ConstraintProto::default_instance() {
6683  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
6684  return *internal_default_instance();
6685 }
6686 
6687 
6688 void ConstraintProto::clear_constraint() {
6689 // @@protoc_insertion_point(one_of_clear_start:operations_research.sat.ConstraintProto)
6690  switch (constraint_case()) {
6691  case kBoolOr: {
6692  if (GetArena() == nullptr) {
6693  delete constraint_.bool_or_;
6694  }
6695  break;
6696  }
6697  case kBoolAnd: {
6698  if (GetArena() == nullptr) {
6699  delete constraint_.bool_and_;
6700  }
6701  break;
6702  }
6703  case kAtMostOne: {
6704  if (GetArena() == nullptr) {
6705  delete constraint_.at_most_one_;
6706  }
6707  break;
6708  }
6709  case kExactlyOne: {
6710  if (GetArena() == nullptr) {
6711  delete constraint_.exactly_one_;
6712  }
6713  break;
6714  }
6715  case kBoolXor: {
6716  if (GetArena() == nullptr) {
6717  delete constraint_.bool_xor_;
6718  }
6719  break;
6720  }
6721  case kIntDiv: {
6722  if (GetArena() == nullptr) {
6723  delete constraint_.int_div_;
6724  }
6725  break;
6726  }
6727  case kIntMod: {
6728  if (GetArena() == nullptr) {
6729  delete constraint_.int_mod_;
6730  }
6731  break;
6732  }
6733  case kIntMax: {
6734  if (GetArena() == nullptr) {
6735  delete constraint_.int_max_;
6736  }
6737  break;
6738  }
6739  case kLinMax: {
6740  if (GetArena() == nullptr) {
6741  delete constraint_.lin_max_;
6742  }
6743  break;
6744  }
6745  case kIntMin: {
6746  if (GetArena() == nullptr) {
6747  delete constraint_.int_min_;
6748  }
6749  break;
6750  }
6751  case kLinMin: {
6752  if (GetArena() == nullptr) {
6753  delete constraint_.lin_min_;
6754  }
6755  break;
6756  }
6757  case kIntProd: {
6758  if (GetArena() == nullptr) {
6759  delete constraint_.int_prod_;
6760  }
6761  break;
6762  }
6763  case kLinear: {
6764  if (GetArena() == nullptr) {
6765  delete constraint_.linear_;
6766  }
6767  break;
6768  }
6769  case kAllDiff: {
6770  if (GetArena() == nullptr) {
6771  delete constraint_.all_diff_;
6772  }
6773  break;
6774  }
6775  case kElement: {
6776  if (GetArena() == nullptr) {
6777  delete constraint_.element_;
6778  }
6779  break;
6780  }
6781  case kCircuit: {
6782  if (GetArena() == nullptr) {
6783  delete constraint_.circuit_;
6784  }
6785  break;
6786  }
6787  case kRoutes: {
6788  if (GetArena() == nullptr) {
6789  delete constraint_.routes_;
6790  }
6791  break;
6792  }
6793  case kTable: {
6794  if (GetArena() == nullptr) {
6795  delete constraint_.table_;
6796  }
6797  break;
6798  }
6799  case kAutomaton: {
6800  if (GetArena() == nullptr) {
6801  delete constraint_.automaton_;
6802  }
6803  break;
6804  }
6805  case kInverse: {
6806  if (GetArena() == nullptr) {
6807  delete constraint_.inverse_;
6808  }
6809  break;
6810  }
6811  case kReservoir: {
6812  if (GetArena() == nullptr) {
6813  delete constraint_.reservoir_;
6814  }
6815  break;
6816  }
6817  case kInterval: {
6818  if (GetArena() == nullptr) {
6819  delete constraint_.interval_;
6820  }
6821  break;
6822  }
6823  case kNoOverlap: {
6824  if (GetArena() == nullptr) {
6825  delete constraint_.no_overlap_;
6826  }
6827  break;
6828  }
6829  case kNoOverlap2D: {
6830  if (GetArena() == nullptr) {
6831  delete constraint_.no_overlap_2d_;
6832  }
6833  break;
6834  }
6835  case kCumulative: {
6836  if (GetArena() == nullptr) {
6837  delete constraint_.cumulative_;
6838  }
6839  break;
6840  }
6841  case CONSTRAINT_NOT_SET: {
6842  break;
6843  }
6844  }
6845  _oneof_case_[0] = CONSTRAINT_NOT_SET;
6846 }
6847 
6848 
6849 void ConstraintProto::Clear() {
6850 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ConstraintProto)
6851  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6852  // Prevent compiler warnings about cached_has_bits being unused
6853  (void) cached_has_bits;
6854 
6855  enforcement_literal_.Clear();
6856  name_.ClearToEmpty();
6857  clear_constraint();
6858  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6859 }
6860 
6861 const char* ConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
6862 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
6863  while (!ctx->Done(&ptr)) {
6865  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
6866  CHK_(ptr);
6867  switch (tag >> 3) {
6868  // string name = 1;
6869  case 1:
6870  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
6871  auto str = _internal_mutable_name();
6872  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
6873  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.ConstraintProto.name"));
6874  CHK_(ptr);
6875  } else goto handle_unusual;
6876  continue;
6877  // repeated int32 enforcement_literal = 2;
6878  case 2:
6879  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
6880  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_enforcement_literal(), ptr, ctx);
6881  CHK_(ptr);
6882  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
6883  _internal_add_enforcement_literal(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
6884  CHK_(ptr);
6885  } else goto handle_unusual;
6886  continue;
6887  // .operations_research.sat.BoolArgumentProto bool_or = 3;
6888  case 3:
6889  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
6890  ptr = ctx->ParseMessage(_internal_mutable_bool_or(), ptr);
6891  CHK_(ptr);
6892  } else goto handle_unusual;
6893  continue;
6894  // .operations_research.sat.BoolArgumentProto bool_and = 4;
6895  case 4:
6896  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
6897  ptr = ctx->ParseMessage(_internal_mutable_bool_and(), ptr);
6898  CHK_(ptr);
6899  } else goto handle_unusual;
6900  continue;
6901  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
6902  case 5:
6903  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
6904  ptr = ctx->ParseMessage(_internal_mutable_bool_xor(), ptr);
6905  CHK_(ptr);
6906  } else goto handle_unusual;
6907  continue;
6908  // .operations_research.sat.IntegerArgumentProto int_div = 7;
6909  case 7:
6910  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
6911  ptr = ctx->ParseMessage(_internal_mutable_int_div(), ptr);
6912  CHK_(ptr);
6913  } else goto handle_unusual;
6914  continue;
6915  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
6916  case 8:
6917  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
6918  ptr = ctx->ParseMessage(_internal_mutable_int_mod(), ptr);
6919  CHK_(ptr);
6920  } else goto handle_unusual;
6921  continue;
6922  // .operations_research.sat.IntegerArgumentProto int_max = 9;
6923  case 9:
6924  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
6925  ptr = ctx->ParseMessage(_internal_mutable_int_max(), ptr);
6926  CHK_(ptr);
6927  } else goto handle_unusual;
6928  continue;
6929  // .operations_research.sat.IntegerArgumentProto int_min = 10;
6930  case 10:
6931  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
6932  ptr = ctx->ParseMessage(_internal_mutable_int_min(), ptr);
6933  CHK_(ptr);
6934  } else goto handle_unusual;
6935  continue;
6936  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
6937  case 11:
6938  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
6939  ptr = ctx->ParseMessage(_internal_mutable_int_prod(), ptr);
6940  CHK_(ptr);
6941  } else goto handle_unusual;
6942  continue;
6943  // .operations_research.sat.LinearConstraintProto linear = 12;
6944  case 12:
6945  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
6946  ptr = ctx->ParseMessage(_internal_mutable_linear(), ptr);
6947  CHK_(ptr);
6948  } else goto handle_unusual;
6949  continue;
6950  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
6951  case 13:
6952  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
6953  ptr = ctx->ParseMessage(_internal_mutable_all_diff(), ptr);
6954  CHK_(ptr);
6955  } else goto handle_unusual;
6956  continue;
6957  // .operations_research.sat.ElementConstraintProto element = 14;
6958  case 14:
6959  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
6960  ptr = ctx->ParseMessage(_internal_mutable_element(), ptr);
6961  CHK_(ptr);
6962  } else goto handle_unusual;
6963  continue;
6964  // .operations_research.sat.CircuitConstraintProto circuit = 15;
6965  case 15:
6966  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
6967  ptr = ctx->ParseMessage(_internal_mutable_circuit(), ptr);
6968  CHK_(ptr);
6969  } else goto handle_unusual;
6970  continue;
6971  // .operations_research.sat.TableConstraintProto table = 16;
6972  case 16:
6973  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
6974  ptr = ctx->ParseMessage(_internal_mutable_table(), ptr);
6975  CHK_(ptr);
6976  } else goto handle_unusual;
6977  continue;
6978  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
6979  case 17:
6980  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
6981  ptr = ctx->ParseMessage(_internal_mutable_automaton(), ptr);
6982  CHK_(ptr);
6983  } else goto handle_unusual;
6984  continue;
6985  // .operations_research.sat.InverseConstraintProto inverse = 18;
6986  case 18:
6987  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
6988  ptr = ctx->ParseMessage(_internal_mutable_inverse(), ptr);
6989  CHK_(ptr);
6990  } else goto handle_unusual;
6991  continue;
6992  // .operations_research.sat.IntervalConstraintProto interval = 19;
6993  case 19:
6994  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
6995  ptr = ctx->ParseMessage(_internal_mutable_interval(), ptr);
6996  CHK_(ptr);
6997  } else goto handle_unusual;
6998  continue;
6999  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7000  case 20:
7001  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
7002  ptr = ctx->ParseMessage(_internal_mutable_no_overlap(), ptr);
7003  CHK_(ptr);
7004  } else goto handle_unusual;
7005  continue;
7006  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7007  case 21:
7008  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
7009  ptr = ctx->ParseMessage(_internal_mutable_no_overlap_2d(), ptr);
7010  CHK_(ptr);
7011  } else goto handle_unusual;
7012  continue;
7013  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7014  case 22:
7015  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
7016  ptr = ctx->ParseMessage(_internal_mutable_cumulative(), ptr);
7017  CHK_(ptr);
7018  } else goto handle_unusual;
7019  continue;
7020  // .operations_research.sat.RoutesConstraintProto routes = 23;
7021  case 23:
7022  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
7023  ptr = ctx->ParseMessage(_internal_mutable_routes(), ptr);
7024  CHK_(ptr);
7025  } else goto handle_unusual;
7026  continue;
7027  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7028  case 24:
7029  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
7030  ptr = ctx->ParseMessage(_internal_mutable_reservoir(), ptr);
7031  CHK_(ptr);
7032  } else goto handle_unusual;
7033  continue;
7034  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7035  case 26:
7036  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
7037  ptr = ctx->ParseMessage(_internal_mutable_at_most_one(), ptr);
7038  CHK_(ptr);
7039  } else goto handle_unusual;
7040  continue;
7041  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7042  case 27:
7043  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
7044  ptr = ctx->ParseMessage(_internal_mutable_lin_max(), ptr);
7045  CHK_(ptr);
7046  } else goto handle_unusual;
7047  continue;
7048  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7049  case 28:
7050  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
7051  ptr = ctx->ParseMessage(_internal_mutable_lin_min(), ptr);
7052  CHK_(ptr);
7053  } else goto handle_unusual;
7054  continue;
7055  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7056  case 29:
7057  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
7058  ptr = ctx->ParseMessage(_internal_mutable_exactly_one(), ptr);
7059  CHK_(ptr);
7060  } else goto handle_unusual;
7061  continue;
7062  default: {
7063  handle_unusual:
7064  if ((tag & 7) == 4 || tag == 0) {
7065  ctx->SetLastTag(tag);
7066  goto success;
7067  }
7068  ptr = UnknownFieldParse(tag,
7069  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7070  ptr, ctx);
7071  CHK_(ptr != nullptr);
7072  continue;
7073  }
7074  } // switch
7075  } // while
7076 success:
7077  return ptr;
7078 failure:
7079  ptr = nullptr;
7080  goto success;
7081 #undef CHK_
7082 }
7083 
7084 ::PROTOBUF_NAMESPACE_ID::uint8* ConstraintProto::_InternalSerialize(
7085  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7086  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ConstraintProto)
7087  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7088  (void) cached_has_bits;
7089 
7090  // string name = 1;
7091  if (this->name().size() > 0) {
7092  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
7093  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
7094  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
7095  "operations_research.sat.ConstraintProto.name");
7096  target = stream->WriteStringMaybeAliased(
7097  1, this->_internal_name(), target);
7098  }
7099 
7100  // repeated int32 enforcement_literal = 2;
7101  {
7102  int byte_size = _enforcement_literal_cached_byte_size_.load(std::memory_order_relaxed);
7103  if (byte_size > 0) {
7104  target = stream->WriteInt32Packed(
7105  2, _internal_enforcement_literal(), byte_size, target);
7106  }
7107  }
7108 
7109  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7110  if (_internal_has_bool_or()) {
7111  target = stream->EnsureSpace(target);
7112  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7113  InternalWriteMessage(
7114  3, _Internal::bool_or(this), target, stream);
7115  }
7116 
7117  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7118  if (_internal_has_bool_and()) {
7119  target = stream->EnsureSpace(target);
7120  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7121  InternalWriteMessage(
7122  4, _Internal::bool_and(this), target, stream);
7123  }
7124 
7125  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7126  if (_internal_has_bool_xor()) {
7127  target = stream->EnsureSpace(target);
7128  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7129  InternalWriteMessage(
7130  5, _Internal::bool_xor(this), target, stream);
7131  }
7132 
7133  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7134  if (_internal_has_int_div()) {
7135  target = stream->EnsureSpace(target);
7136  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7137  InternalWriteMessage(
7138  7, _Internal::int_div(this), target, stream);
7139  }
7140 
7141  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7142  if (_internal_has_int_mod()) {
7143  target = stream->EnsureSpace(target);
7144  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7145  InternalWriteMessage(
7146  8, _Internal::int_mod(this), target, stream);
7147  }
7148 
7149  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7150  if (_internal_has_int_max()) {
7151  target = stream->EnsureSpace(target);
7152  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7153  InternalWriteMessage(
7154  9, _Internal::int_max(this), target, stream);
7155  }
7156 
7157  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7158  if (_internal_has_int_min()) {
7159  target = stream->EnsureSpace(target);
7160  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7161  InternalWriteMessage(
7162  10, _Internal::int_min(this), target, stream);
7163  }
7164 
7165  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7166  if (_internal_has_int_prod()) {
7167  target = stream->EnsureSpace(target);
7168  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7169  InternalWriteMessage(
7170  11, _Internal::int_prod(this), target, stream);
7171  }
7172 
7173  // .operations_research.sat.LinearConstraintProto linear = 12;
7174  if (_internal_has_linear()) {
7175  target = stream->EnsureSpace(target);
7176  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7177  InternalWriteMessage(
7178  12, _Internal::linear(this), target, stream);
7179  }
7180 
7181  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7182  if (_internal_has_all_diff()) {
7183  target = stream->EnsureSpace(target);
7184  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7185  InternalWriteMessage(
7186  13, _Internal::all_diff(this), target, stream);
7187  }
7188 
7189  // .operations_research.sat.ElementConstraintProto element = 14;
7190  if (_internal_has_element()) {
7191  target = stream->EnsureSpace(target);
7192  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7193  InternalWriteMessage(
7194  14, _Internal::element(this), target, stream);
7195  }
7196 
7197  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7198  if (_internal_has_circuit()) {
7199  target = stream->EnsureSpace(target);
7200  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7201  InternalWriteMessage(
7202  15, _Internal::circuit(this), target, stream);
7203  }
7204 
7205  // .operations_research.sat.TableConstraintProto table = 16;
7206  if (_internal_has_table()) {
7207  target = stream->EnsureSpace(target);
7208  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7209  InternalWriteMessage(
7210  16, _Internal::table(this), target, stream);
7211  }
7212 
7213  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7214  if (_internal_has_automaton()) {
7215  target = stream->EnsureSpace(target);
7216  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7217  InternalWriteMessage(
7218  17, _Internal::automaton(this), target, stream);
7219  }
7220 
7221  // .operations_research.sat.InverseConstraintProto inverse = 18;
7222  if (_internal_has_inverse()) {
7223  target = stream->EnsureSpace(target);
7224  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7225  InternalWriteMessage(
7226  18, _Internal::inverse(this), target, stream);
7227  }
7228 
7229  // .operations_research.sat.IntervalConstraintProto interval = 19;
7230  if (_internal_has_interval()) {
7231  target = stream->EnsureSpace(target);
7232  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7233  InternalWriteMessage(
7234  19, _Internal::interval(this), target, stream);
7235  }
7236 
7237  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7238  if (_internal_has_no_overlap()) {
7239  target = stream->EnsureSpace(target);
7240  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7241  InternalWriteMessage(
7242  20, _Internal::no_overlap(this), target, stream);
7243  }
7244 
7245  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7246  if (_internal_has_no_overlap_2d()) {
7247  target = stream->EnsureSpace(target);
7248  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7249  InternalWriteMessage(
7250  21, _Internal::no_overlap_2d(this), target, stream);
7251  }
7252 
7253  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7254  if (_internal_has_cumulative()) {
7255  target = stream->EnsureSpace(target);
7256  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7257  InternalWriteMessage(
7258  22, _Internal::cumulative(this), target, stream);
7259  }
7260 
7261  // .operations_research.sat.RoutesConstraintProto routes = 23;
7262  if (_internal_has_routes()) {
7263  target = stream->EnsureSpace(target);
7264  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7265  InternalWriteMessage(
7266  23, _Internal::routes(this), target, stream);
7267  }
7268 
7269  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7270  if (_internal_has_reservoir()) {
7271  target = stream->EnsureSpace(target);
7272  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7273  InternalWriteMessage(
7274  24, _Internal::reservoir(this), target, stream);
7275  }
7276 
7277  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7278  if (_internal_has_at_most_one()) {
7279  target = stream->EnsureSpace(target);
7280  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7281  InternalWriteMessage(
7282  26, _Internal::at_most_one(this), target, stream);
7283  }
7284 
7285  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7286  if (_internal_has_lin_max()) {
7287  target = stream->EnsureSpace(target);
7288  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7289  InternalWriteMessage(
7290  27, _Internal::lin_max(this), target, stream);
7291  }
7292 
7293  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7294  if (_internal_has_lin_min()) {
7295  target = stream->EnsureSpace(target);
7296  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7297  InternalWriteMessage(
7298  28, _Internal::lin_min(this), target, stream);
7299  }
7300 
7301  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7302  if (_internal_has_exactly_one()) {
7303  target = stream->EnsureSpace(target);
7304  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7305  InternalWriteMessage(
7306  29, _Internal::exactly_one(this), target, stream);
7307  }
7308 
7309  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7310  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7311  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7312  }
7313  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ConstraintProto)
7314  return target;
7315 }
7316 
7317 size_t ConstraintProto::ByteSizeLong() const {
7318 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ConstraintProto)
7319  size_t total_size = 0;
7320 
7321  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7322  // Prevent compiler warnings about cached_has_bits being unused
7323  (void) cached_has_bits;
7324 
7325  // repeated int32 enforcement_literal = 2;
7326  {
7327  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7328  Int32Size(this->enforcement_literal_);
7329  if (data_size > 0) {
7330  total_size += 1 +
7331  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7332  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7333  }
7334  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7335  _enforcement_literal_cached_byte_size_.store(cached_size,
7336  std::memory_order_relaxed);
7337  total_size += data_size;
7338  }
7339 
7340  // string name = 1;
7341  if (this->name().size() > 0) {
7342  total_size += 1 +
7343  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
7344  this->_internal_name());
7345  }
7346 
7347  switch (constraint_case()) {
7348  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7349  case kBoolOr: {
7350  total_size += 1 +
7351  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7352  *constraint_.bool_or_);
7353  break;
7354  }
7355  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7356  case kBoolAnd: {
7357  total_size += 1 +
7358  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7359  *constraint_.bool_and_);
7360  break;
7361  }
7362  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7363  case kAtMostOne: {
7364  total_size += 2 +
7365  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7366  *constraint_.at_most_one_);
7367  break;
7368  }
7369  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7370  case kExactlyOne: {
7371  total_size += 2 +
7372  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7373  *constraint_.exactly_one_);
7374  break;
7375  }
7376  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7377  case kBoolXor: {
7378  total_size += 1 +
7379  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7380  *constraint_.bool_xor_);
7381  break;
7382  }
7383  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7384  case kIntDiv: {
7385  total_size += 1 +
7386  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7387  *constraint_.int_div_);
7388  break;
7389  }
7390  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7391  case kIntMod: {
7392  total_size += 1 +
7393  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7394  *constraint_.int_mod_);
7395  break;
7396  }
7397  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7398  case kIntMax: {
7399  total_size += 1 +
7400  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7401  *constraint_.int_max_);
7402  break;
7403  }
7404  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7405  case kLinMax: {
7406  total_size += 2 +
7407  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7408  *constraint_.lin_max_);
7409  break;
7410  }
7411  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7412  case kIntMin: {
7413  total_size += 1 +
7414  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7415  *constraint_.int_min_);
7416  break;
7417  }
7418  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7419  case kLinMin: {
7420  total_size += 2 +
7421  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7422  *constraint_.lin_min_);
7423  break;
7424  }
7425  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7426  case kIntProd: {
7427  total_size += 1 +
7428  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7429  *constraint_.int_prod_);
7430  break;
7431  }
7432  // .operations_research.sat.LinearConstraintProto linear = 12;
7433  case kLinear: {
7434  total_size += 1 +
7435  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7436  *constraint_.linear_);
7437  break;
7438  }
7439  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7440  case kAllDiff: {
7441  total_size += 1 +
7442  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7443  *constraint_.all_diff_);
7444  break;
7445  }
7446  // .operations_research.sat.ElementConstraintProto element = 14;
7447  case kElement: {
7448  total_size += 1 +
7449  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7450  *constraint_.element_);
7451  break;
7452  }
7453  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7454  case kCircuit: {
7455  total_size += 1 +
7456  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7457  *constraint_.circuit_);
7458  break;
7459  }
7460  // .operations_research.sat.RoutesConstraintProto routes = 23;
7461  case kRoutes: {
7462  total_size += 2 +
7463  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7464  *constraint_.routes_);
7465  break;
7466  }
7467  // .operations_research.sat.TableConstraintProto table = 16;
7468  case kTable: {
7469  total_size += 2 +
7470  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7471  *constraint_.table_);
7472  break;
7473  }
7474  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7475  case kAutomaton: {
7476  total_size += 2 +
7477  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7478  *constraint_.automaton_);
7479  break;
7480  }
7481  // .operations_research.sat.InverseConstraintProto inverse = 18;
7482  case kInverse: {
7483  total_size += 2 +
7484  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7485  *constraint_.inverse_);
7486  break;
7487  }
7488  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7489  case kReservoir: {
7490  total_size += 2 +
7491  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7492  *constraint_.reservoir_);
7493  break;
7494  }
7495  // .operations_research.sat.IntervalConstraintProto interval = 19;
7496  case kInterval: {
7497  total_size += 2 +
7498  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7499  *constraint_.interval_);
7500  break;
7501  }
7502  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7503  case kNoOverlap: {
7504  total_size += 2 +
7505  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7506  *constraint_.no_overlap_);
7507  break;
7508  }
7509  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7510  case kNoOverlap2D: {
7511  total_size += 2 +
7512  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7513  *constraint_.no_overlap_2d_);
7514  break;
7515  }
7516  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7517  case kCumulative: {
7518  total_size += 2 +
7519  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7520  *constraint_.cumulative_);
7521  break;
7522  }
7523  case CONSTRAINT_NOT_SET: {
7524  break;
7525  }
7526  }
7527  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7528  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7529  _internal_metadata_, total_size, &_cached_size_);
7530  }
7531  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7532  SetCachedSize(cached_size);
7533  return total_size;
7534 }
7535 
7536 void ConstraintProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7537 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.ConstraintProto)
7538  GOOGLE_DCHECK_NE(&from, this);
7539  const ConstraintProto* source =
7540  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<ConstraintProto>(
7541  &from);
7542  if (source == nullptr) {
7543  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.ConstraintProto)
7544  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
7545  } else {
7546  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.ConstraintProto)
7547  MergeFrom(*source);
7548  }
7549 }
7550 
7551 void ConstraintProto::MergeFrom(const ConstraintProto& from) {
7552 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ConstraintProto)
7553  GOOGLE_DCHECK_NE(&from, this);
7554  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7555  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7556  (void) cached_has_bits;
7557 
7558  enforcement_literal_.MergeFrom(from.enforcement_literal_);
7559  if (from.name().size() > 0) {
7560  _internal_set_name(from._internal_name());
7561  }
7562  switch (from.constraint_case()) {
7563  case kBoolOr: {
7564  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
7565  break;
7566  }
7567  case kBoolAnd: {
7568  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
7569  break;
7570  }
7571  case kAtMostOne: {
7572  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
7573  break;
7574  }
7575  case kExactlyOne: {
7576  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
7577  break;
7578  }
7579  case kBoolXor: {
7580  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
7581  break;
7582  }
7583  case kIntDiv: {
7584  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
7585  break;
7586  }
7587  case kIntMod: {
7588  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
7589  break;
7590  }
7591  case kIntMax: {
7592  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
7593  break;
7594  }
7595  case kLinMax: {
7596  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
7597  break;
7598  }
7599  case kIntMin: {
7600  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
7601  break;
7602  }
7603  case kLinMin: {
7604  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
7605  break;
7606  }
7607  case kIntProd: {
7608  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
7609  break;
7610  }
7611  case kLinear: {
7612  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
7613  break;
7614  }
7615  case kAllDiff: {
7616  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
7617  break;
7618  }
7619  case kElement: {
7620  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
7621  break;
7622  }
7623  case kCircuit: {
7624  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
7625  break;
7626  }
7627  case kRoutes: {
7628  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
7629  break;
7630  }
7631  case kTable: {
7632  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
7633  break;
7634  }
7635  case kAutomaton: {
7636  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
7637  break;
7638  }
7639  case kInverse: {
7640  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
7641  break;
7642  }
7643  case kReservoir: {
7644  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
7645  break;
7646  }
7647  case kInterval: {
7648  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
7649  break;
7650  }
7651  case kNoOverlap: {
7652  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
7653  break;
7654  }
7655  case kNoOverlap2D: {
7656  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
7657  break;
7658  }
7659  case kCumulative: {
7660  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
7661  break;
7662  }
7663  case CONSTRAINT_NOT_SET: {
7664  break;
7665  }
7666  }
7667 }
7668 
7669 void ConstraintProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7670 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.ConstraintProto)
7671  if (&from == this) return;
7672  Clear();
7673  MergeFrom(from);
7674 }
7675 
7676 void ConstraintProto::CopyFrom(const ConstraintProto& from) {
7677 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ConstraintProto)
7678  if (&from == this) return;
7679  Clear();
7680  MergeFrom(from);
7681 }
7682 
7683 bool ConstraintProto::IsInitialized() const {
7684  return true;
7685 }
7686 
7687 void ConstraintProto::InternalSwap(ConstraintProto* other) {
7688  using std::swap;
7689  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
7690  enforcement_literal_.InternalSwap(&other->enforcement_literal_);
7691  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
7692  swap(constraint_, other->constraint_);
7693  swap(_oneof_case_[0], other->_oneof_case_[0]);
7694 }
7695 
7696 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintProto::GetMetadata() const {
7697  return GetMetadataStatic();
7698 }
7699 
7700 
7701 // ===================================================================
7702 
7704  public:
7705 };
7706 
7707 CpObjectiveProto::CpObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
7708  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
7709  vars_(arena),
7710  coeffs_(arena),
7711  domain_(arena) {
7712  SharedCtor();
7713  RegisterArenaDtor(arena);
7714  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpObjectiveProto)
7715 }
7716 CpObjectiveProto::CpObjectiveProto(const CpObjectiveProto& from)
7717  : ::PROTOBUF_NAMESPACE_ID::Message(),
7718  vars_(from.vars_),
7719  coeffs_(from.coeffs_),
7720  domain_(from.domain_) {
7721  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7722  ::memcpy(&offset_, &from.offset_,
7723  static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7724  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7725  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpObjectiveProto)
7726 }
7727 
7728 void CpObjectiveProto::SharedCtor() {
7729  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7730  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7731  0, static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7732  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7733 }
7734 
7735 CpObjectiveProto::~CpObjectiveProto() {
7736  // @@protoc_insertion_point(destructor:operations_research.sat.CpObjectiveProto)
7737  SharedDtor();
7738  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7739 }
7740 
7741 void CpObjectiveProto::SharedDtor() {
7742  GOOGLE_DCHECK(GetArena() == nullptr);
7743 }
7744 
7745 void CpObjectiveProto::ArenaDtor(void* object) {
7746  CpObjectiveProto* _this = reinterpret_cast< CpObjectiveProto* >(object);
7747  (void)_this;
7748 }
7749 void CpObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7750 }
7751 void CpObjectiveProto::SetCachedSize(int size) const {
7752  _cached_size_.Set(size);
7753 }
7754 const CpObjectiveProto& CpObjectiveProto::default_instance() {
7755  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpObjectiveProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
7756  return *internal_default_instance();
7757 }
7758 
7759 
7760 void CpObjectiveProto::Clear() {
7761 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpObjectiveProto)
7762  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7763  // Prevent compiler warnings about cached_has_bits being unused
7764  (void) cached_has_bits;
7765 
7766  vars_.Clear();
7767  coeffs_.Clear();
7768  domain_.Clear();
7769  ::memset(&offset_, 0, static_cast<size_t>(
7770  reinterpret_cast<char*>(&scaling_factor_) -
7771  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7772  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7773 }
7774 
7775 const char* CpObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7776 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7777  while (!ctx->Done(&ptr)) {
7779  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7780  CHK_(ptr);
7781  switch (tag >> 3) {
7782  // repeated int32 vars = 1;
7783  case 1:
7784  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
7785  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7786  CHK_(ptr);
7787  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
7788  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7789  CHK_(ptr);
7790  } else goto handle_unusual;
7791  continue;
7792  // double offset = 2;
7793  case 2:
7794  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
7795  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7796  ptr += sizeof(double);
7797  } else goto handle_unusual;
7798  continue;
7799  // double scaling_factor = 3;
7800  case 3:
7801  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
7802  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7803  ptr += sizeof(double);
7804  } else goto handle_unusual;
7805  continue;
7806  // repeated int64 coeffs = 4;
7807  case 4:
7808  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
7809  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
7810  CHK_(ptr);
7811  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
7812  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7813  CHK_(ptr);
7814  } else goto handle_unusual;
7815  continue;
7816  // repeated int64 domain = 5;
7817  case 5:
7818  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7819  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
7820  CHK_(ptr);
7821  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
7822  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7823  CHK_(ptr);
7824  } else goto handle_unusual;
7825  continue;
7826  default: {
7827  handle_unusual:
7828  if ((tag & 7) == 4 || tag == 0) {
7829  ctx->SetLastTag(tag);
7830  goto success;
7831  }
7832  ptr = UnknownFieldParse(tag,
7833  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7834  ptr, ctx);
7835  CHK_(ptr != nullptr);
7836  continue;
7837  }
7838  } // switch
7839  } // while
7840 success:
7841  return ptr;
7842 failure:
7843  ptr = nullptr;
7844  goto success;
7845 #undef CHK_
7846 }
7847 
7848 ::PROTOBUF_NAMESPACE_ID::uint8* CpObjectiveProto::_InternalSerialize(
7849  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7850  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpObjectiveProto)
7851  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7852  (void) cached_has_bits;
7853 
7854  // repeated int32 vars = 1;
7855  {
7856  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
7857  if (byte_size > 0) {
7858  target = stream->WriteInt32Packed(
7859  1, _internal_vars(), byte_size, target);
7860  }
7861  }
7862 
7863  // double offset = 2;
7864  if (!(this->offset() <= 0 && this->offset() >= 0)) {
7865  target = stream->EnsureSpace(target);
7866  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_offset(), target);
7867  }
7868 
7869  // double scaling_factor = 3;
7870  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
7871  target = stream->EnsureSpace(target);
7872  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_scaling_factor(), target);
7873  }
7874 
7875  // repeated int64 coeffs = 4;
7876  {
7877  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
7878  if (byte_size > 0) {
7879  target = stream->WriteInt64Packed(
7880  4, _internal_coeffs(), byte_size, target);
7881  }
7882  }
7883 
7884  // repeated int64 domain = 5;
7885  {
7886  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
7887  if (byte_size > 0) {
7888  target = stream->WriteInt64Packed(
7889  5, _internal_domain(), byte_size, target);
7890  }
7891  }
7892 
7893  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7894  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7895  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7896  }
7897  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpObjectiveProto)
7898  return target;
7899 }
7900 
7901 size_t CpObjectiveProto::ByteSizeLong() const {
7902 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpObjectiveProto)
7903  size_t total_size = 0;
7904 
7905  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7906  // Prevent compiler warnings about cached_has_bits being unused
7907  (void) cached_has_bits;
7908 
7909  // repeated int32 vars = 1;
7910  {
7911  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7912  Int32Size(this->vars_);
7913  if (data_size > 0) {
7914  total_size += 1 +
7915  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7916  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7917  }
7918  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7919  _vars_cached_byte_size_.store(cached_size,
7920  std::memory_order_relaxed);
7921  total_size += data_size;
7922  }
7923 
7924  // repeated int64 coeffs = 4;
7925  {
7926  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7927  Int64Size(this->coeffs_);
7928  if (data_size > 0) {
7929  total_size += 1 +
7930  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7931  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7932  }
7933  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7934  _coeffs_cached_byte_size_.store(cached_size,
7935  std::memory_order_relaxed);
7936  total_size += data_size;
7937  }
7938 
7939  // repeated int64 domain = 5;
7940  {
7941  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7942  Int64Size(this->domain_);
7943  if (data_size > 0) {
7944  total_size += 1 +
7945  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7946  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7947  }
7948  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7949  _domain_cached_byte_size_.store(cached_size,
7950  std::memory_order_relaxed);
7951  total_size += data_size;
7952  }
7953 
7954  // double offset = 2;
7955  if (!(this->offset() <= 0 && this->offset() >= 0)) {
7956  total_size += 1 + 8;
7957  }
7958 
7959  // double scaling_factor = 3;
7960  if (!(this->scaling_factor() <= 0 && this->scaling_factor() >= 0)) {
7961  total_size += 1 + 8;
7962  }
7963 
7964  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7965  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7966  _internal_metadata_, total_size, &_cached_size_);
7967  }
7968  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7969  SetCachedSize(cached_size);
7970  return total_size;
7971 }
7972 
7973 void CpObjectiveProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
7974 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpObjectiveProto)
7975  GOOGLE_DCHECK_NE(&from, this);
7976  const CpObjectiveProto* source =
7977  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpObjectiveProto>(
7978  &from);
7979  if (source == nullptr) {
7980  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpObjectiveProto)
7981  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
7982  } else {
7983  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpObjectiveProto)
7984  MergeFrom(*source);
7985  }
7986 }
7987 
7988 void CpObjectiveProto::MergeFrom(const CpObjectiveProto& from) {
7989 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpObjectiveProto)
7990  GOOGLE_DCHECK_NE(&from, this);
7991  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7992  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7993  (void) cached_has_bits;
7994 
7995  vars_.MergeFrom(from.vars_);
7996  coeffs_.MergeFrom(from.coeffs_);
7997  domain_.MergeFrom(from.domain_);
7998  if (!(from.offset() <= 0 && from.offset() >= 0)) {
7999  _internal_set_offset(from._internal_offset());
8000  }
8001  if (!(from.scaling_factor() <= 0 && from.scaling_factor() >= 0)) {
8002  _internal_set_scaling_factor(from._internal_scaling_factor());
8003  }
8004 }
8005 
8006 void CpObjectiveProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8007 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpObjectiveProto)
8008  if (&from == this) return;
8009  Clear();
8010  MergeFrom(from);
8011 }
8012 
8013 void CpObjectiveProto::CopyFrom(const CpObjectiveProto& from) {
8014 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpObjectiveProto)
8015  if (&from == this) return;
8016  Clear();
8017  MergeFrom(from);
8018 }
8019 
8020 bool CpObjectiveProto::IsInitialized() const {
8021  return true;
8022 }
8023 
8024 void CpObjectiveProto::InternalSwap(CpObjectiveProto* other) {
8025  using std::swap;
8026  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8027  vars_.InternalSwap(&other->vars_);
8028  coeffs_.InternalSwap(&other->coeffs_);
8029  domain_.InternalSwap(&other->domain_);
8030  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8031  PROTOBUF_FIELD_OFFSET(CpObjectiveProto, scaling_factor_)
8032  + sizeof(CpObjectiveProto::scaling_factor_)
8033  - PROTOBUF_FIELD_OFFSET(CpObjectiveProto, offset_)>(
8034  reinterpret_cast<char*>(&offset_),
8035  reinterpret_cast<char*>(&other->offset_));
8036 }
8037 
8038 ::PROTOBUF_NAMESPACE_ID::Metadata CpObjectiveProto::GetMetadata() const {
8039  return GetMetadataStatic();
8040 }
8041 
8042 
8043 // ===================================================================
8044 
8046  public:
8047 };
8048 
8049 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8050  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
8051  SharedCtor();
8052  RegisterArenaDtor(arena);
8053  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8054 }
8055 DecisionStrategyProto_AffineTransformation::DecisionStrategyProto_AffineTransformation(const DecisionStrategyProto_AffineTransformation& from)
8056  : ::PROTOBUF_NAMESPACE_ID::Message() {
8057  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8058  ::memcpy(&offset_, &from.offset_,
8059  static_cast<size_t>(reinterpret_cast<char*>(&var_) -
8060  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8061  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8062 }
8063 
8064 void DecisionStrategyProto_AffineTransformation::SharedCtor() {
8065  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8066  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
8067  0, static_cast<size_t>(reinterpret_cast<char*>(&var_) -
8068  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8069 }
8070 
8071 DecisionStrategyProto_AffineTransformation::~DecisionStrategyProto_AffineTransformation() {
8072  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8073  SharedDtor();
8074  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8075 }
8076 
8077 void DecisionStrategyProto_AffineTransformation::SharedDtor() {
8078  GOOGLE_DCHECK(GetArena() == nullptr);
8079 }
8080 
8081 void DecisionStrategyProto_AffineTransformation::ArenaDtor(void* object) {
8082  DecisionStrategyProto_AffineTransformation* _this = reinterpret_cast< DecisionStrategyProto_AffineTransformation* >(object);
8083  (void)_this;
8084 }
8085 void DecisionStrategyProto_AffineTransformation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8086 }
8087 void DecisionStrategyProto_AffineTransformation::SetCachedSize(int size) const {
8088  _cached_size_.Set(size);
8089 }
8090 const DecisionStrategyProto_AffineTransformation& DecisionStrategyProto_AffineTransformation::default_instance() {
8091  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8092  return *internal_default_instance();
8093 }
8094 
8095 
8096 void DecisionStrategyProto_AffineTransformation::Clear() {
8097 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8098  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8099  // Prevent compiler warnings about cached_has_bits being unused
8100  (void) cached_has_bits;
8101 
8102  ::memset(&offset_, 0, static_cast<size_t>(
8103  reinterpret_cast<char*>(&var_) -
8104  reinterpret_cast<char*>(&offset_)) + sizeof(var_));
8105  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8106 }
8107 
8108 const char* DecisionStrategyProto_AffineTransformation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8109 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8110  while (!ctx->Done(&ptr)) {
8112  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8113  CHK_(ptr);
8114  switch (tag >> 3) {
8115  // int32 var = 1;
8116  case 1:
8117  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
8118  var_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8119  CHK_(ptr);
8120  } else goto handle_unusual;
8121  continue;
8122  // int64 offset = 2;
8123  case 2:
8124  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8125  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8126  CHK_(ptr);
8127  } else goto handle_unusual;
8128  continue;
8129  // int64 positive_coeff = 3;
8130  case 3:
8131  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8132  positive_coeff_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8133  CHK_(ptr);
8134  } else goto handle_unusual;
8135  continue;
8136  default: {
8137  handle_unusual:
8138  if ((tag & 7) == 4 || tag == 0) {
8139  ctx->SetLastTag(tag);
8140  goto success;
8141  }
8142  ptr = UnknownFieldParse(tag,
8143  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8144  ptr, ctx);
8145  CHK_(ptr != nullptr);
8146  continue;
8147  }
8148  } // switch
8149  } // while
8150 success:
8151  return ptr;
8152 failure:
8153  ptr = nullptr;
8154  goto success;
8155 #undef CHK_
8156 }
8157 
8158 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto_AffineTransformation::_InternalSerialize(
8159  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8160  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8161  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8162  (void) cached_has_bits;
8163 
8164  // int32 var = 1;
8165  if (this->var() != 0) {
8166  target = stream->EnsureSpace(target);
8167  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_var(), target);
8168  }
8169 
8170  // int64 offset = 2;
8171  if (this->offset() != 0) {
8172  target = stream->EnsureSpace(target);
8173  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_offset(), target);
8174  }
8175 
8176  // int64 positive_coeff = 3;
8177  if (this->positive_coeff() != 0) {
8178  target = stream->EnsureSpace(target);
8179  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_positive_coeff(), target);
8180  }
8181 
8182  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8183  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8184  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8185  }
8186  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8187  return target;
8188 }
8189 
8190 size_t DecisionStrategyProto_AffineTransformation::ByteSizeLong() const {
8191 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8192  size_t total_size = 0;
8193 
8194  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8195  // Prevent compiler warnings about cached_has_bits being unused
8196  (void) cached_has_bits;
8197 
8198  // int64 offset = 2;
8199  if (this->offset() != 0) {
8200  total_size += 1 +
8201  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8202  this->_internal_offset());
8203  }
8204 
8205  // int64 positive_coeff = 3;
8206  if (this->positive_coeff() != 0) {
8207  total_size += 1 +
8208  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8209  this->_internal_positive_coeff());
8210  }
8211 
8212  // int32 var = 1;
8213  if (this->var() != 0) {
8214  total_size += 1 +
8215  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8216  this->_internal_var());
8217  }
8218 
8219  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8220  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8221  _internal_metadata_, total_size, &_cached_size_);
8222  }
8223  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8224  SetCachedSize(cached_size);
8225  return total_size;
8226 }
8227 
8228 void DecisionStrategyProto_AffineTransformation::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8229 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8230  GOOGLE_DCHECK_NE(&from, this);
8231  const DecisionStrategyProto_AffineTransformation* source =
8232  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto_AffineTransformation>(
8233  &from);
8234  if (source == nullptr) {
8235  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8236  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8237  } else {
8238  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8239  MergeFrom(*source);
8240  }
8241 }
8242 
8243 void DecisionStrategyProto_AffineTransformation::MergeFrom(const DecisionStrategyProto_AffineTransformation& from) {
8244 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8245  GOOGLE_DCHECK_NE(&from, this);
8246  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8247  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8248  (void) cached_has_bits;
8249 
8250  if (from.offset() != 0) {
8251  _internal_set_offset(from._internal_offset());
8252  }
8253  if (from.positive_coeff() != 0) {
8254  _internal_set_positive_coeff(from._internal_positive_coeff());
8255  }
8256  if (from.var() != 0) {
8257  _internal_set_var(from._internal_var());
8258  }
8259 }
8260 
8261 void DecisionStrategyProto_AffineTransformation::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8262 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8263  if (&from == this) return;
8264  Clear();
8265  MergeFrom(from);
8266 }
8267 
8268 void DecisionStrategyProto_AffineTransformation::CopyFrom(const DecisionStrategyProto_AffineTransformation& from) {
8269 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8270  if (&from == this) return;
8271  Clear();
8272  MergeFrom(from);
8273 }
8274 
8275 bool DecisionStrategyProto_AffineTransformation::IsInitialized() const {
8276  return true;
8277 }
8278 
8279 void DecisionStrategyProto_AffineTransformation::InternalSwap(DecisionStrategyProto_AffineTransformation* other) {
8280  using std::swap;
8281  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8282  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8283  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, var_)
8284  + sizeof(DecisionStrategyProto_AffineTransformation::var_)
8285  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, offset_)>(
8286  reinterpret_cast<char*>(&offset_),
8287  reinterpret_cast<char*>(&other->offset_));
8288 }
8289 
8290 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto_AffineTransformation::GetMetadata() const {
8291  return GetMetadataStatic();
8292 }
8293 
8294 
8295 // ===================================================================
8296 
8298  public:
8299 };
8300 
8301 DecisionStrategyProto::DecisionStrategyProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8302  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8303  variables_(arena),
8304  transformations_(arena) {
8305  SharedCtor();
8306  RegisterArenaDtor(arena);
8307  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto)
8308 }
8309 DecisionStrategyProto::DecisionStrategyProto(const DecisionStrategyProto& from)
8310  : ::PROTOBUF_NAMESPACE_ID::Message(),
8311  variables_(from.variables_),
8312  transformations_(from.transformations_) {
8313  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8314  ::memcpy(&variable_selection_strategy_, &from.variable_selection_strategy_,
8315  static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8316  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8317  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto)
8318 }
8319 
8320 void DecisionStrategyProto::SharedCtor() {
8321  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8322  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8323  reinterpret_cast<char*>(&variable_selection_strategy_) - reinterpret_cast<char*>(this)),
8324  0, static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8325  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8326 }
8327 
8328 DecisionStrategyProto::~DecisionStrategyProto() {
8329  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto)
8330  SharedDtor();
8331  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8332 }
8333 
8334 void DecisionStrategyProto::SharedDtor() {
8335  GOOGLE_DCHECK(GetArena() == nullptr);
8336 }
8337 
8338 void DecisionStrategyProto::ArenaDtor(void* object) {
8339  DecisionStrategyProto* _this = reinterpret_cast< DecisionStrategyProto* >(object);
8340  (void)_this;
8341 }
8342 void DecisionStrategyProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8343 }
8344 void DecisionStrategyProto::SetCachedSize(int size) const {
8345  _cached_size_.Set(size);
8346 }
8347 const DecisionStrategyProto& DecisionStrategyProto::default_instance() {
8348  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8349  return *internal_default_instance();
8350 }
8351 
8352 
8353 void DecisionStrategyProto::Clear() {
8354 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto)
8355  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8356  // Prevent compiler warnings about cached_has_bits being unused
8357  (void) cached_has_bits;
8358 
8359  variables_.Clear();
8360  transformations_.Clear();
8361  ::memset(&variable_selection_strategy_, 0, static_cast<size_t>(
8362  reinterpret_cast<char*>(&domain_reduction_strategy_) -
8363  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8364  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8365 }
8366 
8367 const char* DecisionStrategyProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8368 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8369  while (!ctx->Done(&ptr)) {
8371  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8372  CHK_(ptr);
8373  switch (tag >> 3) {
8374  // repeated int32 variables = 1;
8375  case 1:
8376  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8377  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_variables(), ptr, ctx);
8378  CHK_(ptr);
8379  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8380  _internal_add_variables(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8381  CHK_(ptr);
8382  } else goto handle_unusual;
8383  continue;
8384  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8385  case 2:
8386  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8387  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8388  CHK_(ptr);
8389  _internal_set_variable_selection_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_VariableSelectionStrategy>(val));
8390  } else goto handle_unusual;
8391  continue;
8392  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8393  case 3:
8394  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8395  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8396  CHK_(ptr);
8397  _internal_set_domain_reduction_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_DomainReductionStrategy>(val));
8398  } else goto handle_unusual;
8399  continue;
8400  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8401  case 4:
8402  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
8403  ptr -= 1;
8404  do {
8405  ptr += 1;
8406  ptr = ctx->ParseMessage(_internal_add_transformations(), ptr);
8407  CHK_(ptr);
8408  if (!ctx->DataAvailable(ptr)) break;
8409  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
8410  } else goto handle_unusual;
8411  continue;
8412  default: {
8413  handle_unusual:
8414  if ((tag & 7) == 4 || tag == 0) {
8415  ctx->SetLastTag(tag);
8416  goto success;
8417  }
8418  ptr = UnknownFieldParse(tag,
8419  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8420  ptr, ctx);
8421  CHK_(ptr != nullptr);
8422  continue;
8423  }
8424  } // switch
8425  } // while
8426 success:
8427  return ptr;
8428 failure:
8429  ptr = nullptr;
8430  goto success;
8431 #undef CHK_
8432 }
8433 
8434 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto::_InternalSerialize(
8435  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8436  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto)
8437  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8438  (void) cached_has_bits;
8439 
8440  // repeated int32 variables = 1;
8441  {
8442  int byte_size = _variables_cached_byte_size_.load(std::memory_order_relaxed);
8443  if (byte_size > 0) {
8444  target = stream->WriteInt32Packed(
8445  1, _internal_variables(), byte_size, target);
8446  }
8447  }
8448 
8449  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8450  if (this->variable_selection_strategy() != 0) {
8451  target = stream->EnsureSpace(target);
8452  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8453  2, this->_internal_variable_selection_strategy(), target);
8454  }
8455 
8456  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8457  if (this->domain_reduction_strategy() != 0) {
8458  target = stream->EnsureSpace(target);
8459  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8460  3, this->_internal_domain_reduction_strategy(), target);
8461  }
8462 
8463  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8464  for (unsigned int i = 0,
8465  n = static_cast<unsigned int>(this->_internal_transformations_size()); i < n; i++) {
8466  target = stream->EnsureSpace(target);
8467  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8468  InternalWriteMessage(4, this->_internal_transformations(i), target, stream);
8469  }
8470 
8471  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8472  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8473  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8474  }
8475  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto)
8476  return target;
8477 }
8478 
8479 size_t DecisionStrategyProto::ByteSizeLong() const {
8480 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto)
8481  size_t total_size = 0;
8482 
8483  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8484  // Prevent compiler warnings about cached_has_bits being unused
8485  (void) cached_has_bits;
8486 
8487  // repeated int32 variables = 1;
8488  {
8489  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8490  Int32Size(this->variables_);
8491  if (data_size > 0) {
8492  total_size += 1 +
8493  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8494  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8495  }
8496  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8497  _variables_cached_byte_size_.store(cached_size,
8498  std::memory_order_relaxed);
8499  total_size += data_size;
8500  }
8501 
8502  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8503  total_size += 1UL * this->_internal_transformations_size();
8504  for (const auto& msg : this->transformations_) {
8505  total_size +=
8506  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
8507  }
8508 
8509  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8510  if (this->variable_selection_strategy() != 0) {
8511  total_size += 1 +
8512  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_variable_selection_strategy());
8513  }
8514 
8515  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8516  if (this->domain_reduction_strategy() != 0) {
8517  total_size += 1 +
8518  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_domain_reduction_strategy());
8519  }
8520 
8521  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8522  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8523  _internal_metadata_, total_size, &_cached_size_);
8524  }
8525  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8526  SetCachedSize(cached_size);
8527  return total_size;
8528 }
8529 
8530 void DecisionStrategyProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8531 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.DecisionStrategyProto)
8532  GOOGLE_DCHECK_NE(&from, this);
8533  const DecisionStrategyProto* source =
8534  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<DecisionStrategyProto>(
8535  &from);
8536  if (source == nullptr) {
8537  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.DecisionStrategyProto)
8538  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8539  } else {
8540  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.DecisionStrategyProto)
8541  MergeFrom(*source);
8542  }
8543 }
8544 
8545 void DecisionStrategyProto::MergeFrom(const DecisionStrategyProto& from) {
8546 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto)
8547  GOOGLE_DCHECK_NE(&from, this);
8548  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8549  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8550  (void) cached_has_bits;
8551 
8552  variables_.MergeFrom(from.variables_);
8553  transformations_.MergeFrom(from.transformations_);
8554  if (from.variable_selection_strategy() != 0) {
8555  _internal_set_variable_selection_strategy(from._internal_variable_selection_strategy());
8556  }
8557  if (from.domain_reduction_strategy() != 0) {
8558  _internal_set_domain_reduction_strategy(from._internal_domain_reduction_strategy());
8559  }
8560 }
8561 
8562 void DecisionStrategyProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8563 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.DecisionStrategyProto)
8564  if (&from == this) return;
8565  Clear();
8566  MergeFrom(from);
8567 }
8568 
8569 void DecisionStrategyProto::CopyFrom(const DecisionStrategyProto& from) {
8570 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto)
8571  if (&from == this) return;
8572  Clear();
8573  MergeFrom(from);
8574 }
8575 
8576 bool DecisionStrategyProto::IsInitialized() const {
8577  return true;
8578 }
8579 
8580 void DecisionStrategyProto::InternalSwap(DecisionStrategyProto* other) {
8581  using std::swap;
8582  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8583  variables_.InternalSwap(&other->variables_);
8584  transformations_.InternalSwap(&other->transformations_);
8585  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8586  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, domain_reduction_strategy_)
8587  + sizeof(DecisionStrategyProto::domain_reduction_strategy_)
8588  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, variable_selection_strategy_)>(
8589  reinterpret_cast<char*>(&variable_selection_strategy_),
8590  reinterpret_cast<char*>(&other->variable_selection_strategy_));
8591 }
8592 
8593 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto::GetMetadata() const {
8594  return GetMetadataStatic();
8595 }
8596 
8597 
8598 // ===================================================================
8599 
8601  public:
8602 };
8603 
8604 PartialVariableAssignment::PartialVariableAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8605  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8606  vars_(arena),
8607  values_(arena) {
8608  SharedCtor();
8609  RegisterArenaDtor(arena);
8610  // @@protoc_insertion_point(arena_constructor:operations_research.sat.PartialVariableAssignment)
8611 }
8612 PartialVariableAssignment::PartialVariableAssignment(const PartialVariableAssignment& from)
8613  : ::PROTOBUF_NAMESPACE_ID::Message(),
8614  vars_(from.vars_),
8615  values_(from.values_) {
8616  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8617  // @@protoc_insertion_point(copy_constructor:operations_research.sat.PartialVariableAssignment)
8618 }
8619 
8620 void PartialVariableAssignment::SharedCtor() {
8621 }
8622 
8623 PartialVariableAssignment::~PartialVariableAssignment() {
8624  // @@protoc_insertion_point(destructor:operations_research.sat.PartialVariableAssignment)
8625  SharedDtor();
8626  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8627 }
8628 
8629 void PartialVariableAssignment::SharedDtor() {
8630  GOOGLE_DCHECK(GetArena() == nullptr);
8631 }
8632 
8633 void PartialVariableAssignment::ArenaDtor(void* object) {
8634  PartialVariableAssignment* _this = reinterpret_cast< PartialVariableAssignment* >(object);
8635  (void)_this;
8636 }
8637 void PartialVariableAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8638 }
8639 void PartialVariableAssignment::SetCachedSize(int size) const {
8640  _cached_size_.Set(size);
8641 }
8642 const PartialVariableAssignment& PartialVariableAssignment::default_instance() {
8643  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8644  return *internal_default_instance();
8645 }
8646 
8647 
8648 void PartialVariableAssignment::Clear() {
8649 // @@protoc_insertion_point(message_clear_start:operations_research.sat.PartialVariableAssignment)
8650  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8651  // Prevent compiler warnings about cached_has_bits being unused
8652  (void) cached_has_bits;
8653 
8654  vars_.Clear();
8655  values_.Clear();
8656  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8657 }
8658 
8659 const char* PartialVariableAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8660 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8661  while (!ctx->Done(&ptr)) {
8663  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8664  CHK_(ptr);
8665  switch (tag >> 3) {
8666  // repeated int32 vars = 1;
8667  case 1:
8668  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8669  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
8670  CHK_(ptr);
8671  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8672  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8673  CHK_(ptr);
8674  } else goto handle_unusual;
8675  continue;
8676  // repeated int64 values = 2;
8677  case 2:
8678  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8679  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
8680  CHK_(ptr);
8681  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
8682  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8683  CHK_(ptr);
8684  } else goto handle_unusual;
8685  continue;
8686  default: {
8687  handle_unusual:
8688  if ((tag & 7) == 4 || tag == 0) {
8689  ctx->SetLastTag(tag);
8690  goto success;
8691  }
8692  ptr = UnknownFieldParse(tag,
8693  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8694  ptr, ctx);
8695  CHK_(ptr != nullptr);
8696  continue;
8697  }
8698  } // switch
8699  } // while
8700 success:
8701  return ptr;
8702 failure:
8703  ptr = nullptr;
8704  goto success;
8705 #undef CHK_
8706 }
8707 
8708 ::PROTOBUF_NAMESPACE_ID::uint8* PartialVariableAssignment::_InternalSerialize(
8709  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8710  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.PartialVariableAssignment)
8711  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8712  (void) cached_has_bits;
8713 
8714  // repeated int32 vars = 1;
8715  {
8716  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8717  if (byte_size > 0) {
8718  target = stream->WriteInt32Packed(
8719  1, _internal_vars(), byte_size, target);
8720  }
8721  }
8722 
8723  // repeated int64 values = 2;
8724  {
8725  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
8726  if (byte_size > 0) {
8727  target = stream->WriteInt64Packed(
8728  2, _internal_values(), byte_size, target);
8729  }
8730  }
8731 
8732  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8733  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8734  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8735  }
8736  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.PartialVariableAssignment)
8737  return target;
8738 }
8739 
8740 size_t PartialVariableAssignment::ByteSizeLong() const {
8741 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.PartialVariableAssignment)
8742  size_t total_size = 0;
8743 
8744  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8745  // Prevent compiler warnings about cached_has_bits being unused
8746  (void) cached_has_bits;
8747 
8748  // repeated int32 vars = 1;
8749  {
8750  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8751  Int32Size(this->vars_);
8752  if (data_size > 0) {
8753  total_size += 1 +
8754  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8755  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8756  }
8757  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8758  _vars_cached_byte_size_.store(cached_size,
8759  std::memory_order_relaxed);
8760  total_size += data_size;
8761  }
8762 
8763  // repeated int64 values = 2;
8764  {
8765  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8766  Int64Size(this->values_);
8767  if (data_size > 0) {
8768  total_size += 1 +
8769  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8770  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8771  }
8772  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8773  _values_cached_byte_size_.store(cached_size,
8774  std::memory_order_relaxed);
8775  total_size += data_size;
8776  }
8777 
8778  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8779  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8780  _internal_metadata_, total_size, &_cached_size_);
8781  }
8782  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8783  SetCachedSize(cached_size);
8784  return total_size;
8785 }
8786 
8787 void PartialVariableAssignment::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8788 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.PartialVariableAssignment)
8789  GOOGLE_DCHECK_NE(&from, this);
8790  const PartialVariableAssignment* source =
8791  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<PartialVariableAssignment>(
8792  &from);
8793  if (source == nullptr) {
8794  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.PartialVariableAssignment)
8795  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
8796  } else {
8797  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.PartialVariableAssignment)
8798  MergeFrom(*source);
8799  }
8800 }
8801 
8802 void PartialVariableAssignment::MergeFrom(const PartialVariableAssignment& from) {
8803 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.PartialVariableAssignment)
8804  GOOGLE_DCHECK_NE(&from, this);
8805  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8806  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8807  (void) cached_has_bits;
8808 
8809  vars_.MergeFrom(from.vars_);
8810  values_.MergeFrom(from.values_);
8811 }
8812 
8813 void PartialVariableAssignment::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
8814 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.PartialVariableAssignment)
8815  if (&from == this) return;
8816  Clear();
8817  MergeFrom(from);
8818 }
8819 
8820 void PartialVariableAssignment::CopyFrom(const PartialVariableAssignment& from) {
8821 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.PartialVariableAssignment)
8822  if (&from == this) return;
8823  Clear();
8824  MergeFrom(from);
8825 }
8826 
8827 bool PartialVariableAssignment::IsInitialized() const {
8828  return true;
8829 }
8830 
8831 void PartialVariableAssignment::InternalSwap(PartialVariableAssignment* other) {
8832  using std::swap;
8833  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
8834  vars_.InternalSwap(&other->vars_);
8835  values_.InternalSwap(&other->values_);
8836 }
8837 
8838 ::PROTOBUF_NAMESPACE_ID::Metadata PartialVariableAssignment::GetMetadata() const {
8839  return GetMetadataStatic();
8840 }
8841 
8842 
8843 // ===================================================================
8844 
8846  public:
8847  static const ::operations_research::sat::CpObjectiveProto& objective(const CpModelProto* msg);
8848  static const ::operations_research::sat::PartialVariableAssignment& solution_hint(const CpModelProto* msg);
8849 };
8850 
8851 const ::operations_research::sat::CpObjectiveProto&
8852 CpModelProto::_Internal::objective(const CpModelProto* msg) {
8853  return *msg->objective_;
8854 }
8855 const ::operations_research::sat::PartialVariableAssignment&
8856 CpModelProto::_Internal::solution_hint(const CpModelProto* msg) {
8857  return *msg->solution_hint_;
8858 }
8859 CpModelProto::CpModelProto(::PROTOBUF_NAMESPACE_ID::Arena* arena)
8860  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
8861  variables_(arena),
8862  constraints_(arena),
8863  search_strategy_(arena),
8864  assumptions_(arena) {
8865  SharedCtor();
8866  RegisterArenaDtor(arena);
8867  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpModelProto)
8868 }
8869 CpModelProto::CpModelProto(const CpModelProto& from)
8870  : ::PROTOBUF_NAMESPACE_ID::Message(),
8871  variables_(from.variables_),
8872  constraints_(from.constraints_),
8873  search_strategy_(from.search_strategy_),
8874  assumptions_(from.assumptions_) {
8875  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8876  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
8877  if (!from._internal_name().empty()) {
8878  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
8879  GetArena());
8880  }
8881  if (from._internal_has_objective()) {
8882  objective_ = new ::operations_research::sat::CpObjectiveProto(*from.objective_);
8883  } else {
8884  objective_ = nullptr;
8885  }
8886  if (from._internal_has_solution_hint()) {
8887  solution_hint_ = new ::operations_research::sat::PartialVariableAssignment(*from.solution_hint_);
8888  } else {
8889  solution_hint_ = nullptr;
8890  }
8891  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpModelProto)
8892 }
8893 
8894 void CpModelProto::SharedCtor() {
8895  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8896  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
8897  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8898  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
8899  0, static_cast<size_t>(reinterpret_cast<char*>(&solution_hint_) -
8900  reinterpret_cast<char*>(&objective_)) + sizeof(solution_hint_));
8901 }
8902 
8903 CpModelProto::~CpModelProto() {
8904  // @@protoc_insertion_point(destructor:operations_research.sat.CpModelProto)
8905  SharedDtor();
8906  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8907 }
8908 
8909 void CpModelProto::SharedDtor() {
8910  GOOGLE_DCHECK(GetArena() == nullptr);
8911  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
8912  if (this != internal_default_instance()) delete objective_;
8913  if (this != internal_default_instance()) delete solution_hint_;
8914 }
8915 
8916 void CpModelProto::ArenaDtor(void* object) {
8917  CpModelProto* _this = reinterpret_cast< CpModelProto* >(object);
8918  (void)_this;
8919 }
8920 void CpModelProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8921 }
8922 void CpModelProto::SetCachedSize(int size) const {
8923  _cached_size_.Set(size);
8924 }
8925 const CpModelProto& CpModelProto::default_instance() {
8926  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto.base);
8927  return *internal_default_instance();
8928 }
8929 
8930 
8931 void CpModelProto::Clear() {
8932 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpModelProto)
8933  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8934  // Prevent compiler warnings about cached_has_bits being unused
8935  (void) cached_has_bits;
8936 
8937  variables_.Clear();
8938  constraints_.Clear();
8939  search_strategy_.Clear();
8940  assumptions_.Clear();
8941  name_.ClearToEmpty();
8942  if (GetArena() == nullptr && objective_ != nullptr) {
8943  delete objective_;
8944  }
8945  objective_ = nullptr;
8946  if (GetArena() == nullptr && solution_hint_ != nullptr) {
8947  delete solution_hint_;
8948  }
8949  solution_hint_ = nullptr;
8950  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8951 }
8952 
8953 const char* CpModelProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8954 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8955  while (!ctx->Done(&ptr)) {
8957  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8958  CHK_(ptr);
8959  switch (tag >> 3) {
8960  // string name = 1;
8961  case 1:
8962  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8963  auto str = _internal_mutable_name();
8964  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
8965  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpModelProto.name"));
8966  CHK_(ptr);
8967  } else goto handle_unusual;
8968  continue;
8969  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
8970  case 2:
8971  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8972  ptr -= 1;
8973  do {
8974  ptr += 1;
8975  ptr = ctx->ParseMessage(_internal_add_variables(), ptr);
8976  CHK_(ptr);
8977  if (!ctx->DataAvailable(ptr)) break;
8978  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
8979  } else goto handle_unusual;
8980  continue;
8981  // repeated .operations_research.sat.ConstraintProto constraints = 3;
8982  case 3:
8983  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
8984  ptr -= 1;
8985  do {
8986  ptr += 1;
8987  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
8988  CHK_(ptr);
8989  if (!ctx->DataAvailable(ptr)) break;
8990  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
8991  } else goto handle_unusual;
8992  continue;
8993  // .operations_research.sat.CpObjectiveProto objective = 4;
8994  case 4:
8995  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
8996  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
8997  CHK_(ptr);
8998  } else goto handle_unusual;
8999  continue;
9000  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9001  case 5:
9002  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
9003  ptr -= 1;
9004  do {
9005  ptr += 1;
9006  ptr = ctx->ParseMessage(_internal_add_search_strategy(), ptr);
9007  CHK_(ptr);
9008  if (!ctx->DataAvailable(ptr)) break;
9009  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
9010  } else goto handle_unusual;
9011  continue;
9012  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9013  case 6:
9014  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
9015  ptr = ctx->ParseMessage(_internal_mutable_solution_hint(), ptr);
9016  CHK_(ptr);
9017  } else goto handle_unusual;
9018  continue;
9019  // repeated int32 assumptions = 7;
9020  case 7:
9021  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
9022  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_assumptions(), ptr, ctx);
9023  CHK_(ptr);
9024  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
9025  _internal_add_assumptions(::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* CpModelProto::_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.CpModelProto)
9054  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9055  (void) cached_has_bits;
9056 
9057  // string name = 1;
9058  if (this->name().size() > 0) {
9059  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9060  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
9061  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9062  "operations_research.sat.CpModelProto.name");
9063  target = stream->WriteStringMaybeAliased(
9064  1, this->_internal_name(), target);
9065  }
9066 
9067  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9068  for (unsigned int i = 0,
9069  n = static_cast<unsigned int>(this->_internal_variables_size()); i < n; i++) {
9070  target = stream->EnsureSpace(target);
9071  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9072  InternalWriteMessage(2, this->_internal_variables(i), target, stream);
9073  }
9074 
9075  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9076  for (unsigned int i = 0,
9077  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
9078  target = stream->EnsureSpace(target);
9079  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9080  InternalWriteMessage(3, this->_internal_constraints(i), target, stream);
9081  }
9082 
9083  // .operations_research.sat.CpObjectiveProto objective = 4;
9084  if (this->has_objective()) {
9085  target = stream->EnsureSpace(target);
9086  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9087  InternalWriteMessage(
9088  4, _Internal::objective(this), target, stream);
9089  }
9090 
9091  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9092  for (unsigned int i = 0,
9093  n = static_cast<unsigned int>(this->_internal_search_strategy_size()); i < n; i++) {
9094  target = stream->EnsureSpace(target);
9095  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9096  InternalWriteMessage(5, this->_internal_search_strategy(i), target, stream);
9097  }
9098 
9099  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9100  if (this->has_solution_hint()) {
9101  target = stream->EnsureSpace(target);
9102  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9103  InternalWriteMessage(
9104  6, _Internal::solution_hint(this), target, stream);
9105  }
9106 
9107  // repeated int32 assumptions = 7;
9108  {
9109  int byte_size = _assumptions_cached_byte_size_.load(std::memory_order_relaxed);
9110  if (byte_size > 0) {
9111  target = stream->WriteInt32Packed(
9112  7, _internal_assumptions(), byte_size, target);
9113  }
9114  }
9115 
9116  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9117  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9118  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9119  }
9120  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpModelProto)
9121  return target;
9122 }
9123 
9124 size_t CpModelProto::ByteSizeLong() const {
9125 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpModelProto)
9126  size_t total_size = 0;
9127 
9128  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9129  // Prevent compiler warnings about cached_has_bits being unused
9130  (void) cached_has_bits;
9131 
9132  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9133  total_size += 1UL * this->_internal_variables_size();
9134  for (const auto& msg : this->variables_) {
9135  total_size +=
9136  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9137  }
9138 
9139  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9140  total_size += 1UL * this->_internal_constraints_size();
9141  for (const auto& msg : this->constraints_) {
9142  total_size +=
9143  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9144  }
9145 
9146  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9147  total_size += 1UL * this->_internal_search_strategy_size();
9148  for (const auto& msg : this->search_strategy_) {
9149  total_size +=
9150  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9151  }
9152 
9153  // repeated int32 assumptions = 7;
9154  {
9155  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9156  Int32Size(this->assumptions_);
9157  if (data_size > 0) {
9158  total_size += 1 +
9159  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9160  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9161  }
9162  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9163  _assumptions_cached_byte_size_.store(cached_size,
9164  std::memory_order_relaxed);
9165  total_size += data_size;
9166  }
9167 
9168  // string name = 1;
9169  if (this->name().size() > 0) {
9170  total_size += 1 +
9171  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
9172  this->_internal_name());
9173  }
9174 
9175  // .operations_research.sat.CpObjectiveProto objective = 4;
9176  if (this->has_objective()) {
9177  total_size += 1 +
9178  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9179  *objective_);
9180  }
9181 
9182  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9183  if (this->has_solution_hint()) {
9184  total_size += 1 +
9185  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
9186  *solution_hint_);
9187  }
9188 
9189  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9190  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9191  _internal_metadata_, total_size, &_cached_size_);
9192  }
9193  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9194  SetCachedSize(cached_size);
9195  return total_size;
9196 }
9197 
9198 void CpModelProto::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9199 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpModelProto)
9200  GOOGLE_DCHECK_NE(&from, this);
9201  const CpModelProto* source =
9202  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpModelProto>(
9203  &from);
9204  if (source == nullptr) {
9205  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpModelProto)
9206  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9207  } else {
9208  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpModelProto)
9209  MergeFrom(*source);
9210  }
9211 }
9212 
9213 void CpModelProto::MergeFrom(const CpModelProto& from) {
9214 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpModelProto)
9215  GOOGLE_DCHECK_NE(&from, this);
9216  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9217  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9218  (void) cached_has_bits;
9219 
9220  variables_.MergeFrom(from.variables_);
9221  constraints_.MergeFrom(from.constraints_);
9222  search_strategy_.MergeFrom(from.search_strategy_);
9223  assumptions_.MergeFrom(from.assumptions_);
9224  if (from.name().size() > 0) {
9225  _internal_set_name(from._internal_name());
9226  }
9227  if (from.has_objective()) {
9228  _internal_mutable_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_objective());
9229  }
9230  if (from.has_solution_hint()) {
9231  _internal_mutable_solution_hint()->::operations_research::sat::PartialVariableAssignment::MergeFrom(from._internal_solution_hint());
9232  }
9233 }
9234 
9235 void CpModelProto::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9236 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpModelProto)
9237  if (&from == this) return;
9238  Clear();
9239  MergeFrom(from);
9240 }
9241 
9242 void CpModelProto::CopyFrom(const CpModelProto& from) {
9243 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpModelProto)
9244  if (&from == this) return;
9245  Clear();
9246  MergeFrom(from);
9247 }
9248 
9249 bool CpModelProto::IsInitialized() const {
9250  return true;
9251 }
9252 
9253 void CpModelProto::InternalSwap(CpModelProto* other) {
9254  using std::swap;
9255  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9256  variables_.InternalSwap(&other->variables_);
9257  constraints_.InternalSwap(&other->constraints_);
9258  search_strategy_.InternalSwap(&other->search_strategy_);
9259  assumptions_.InternalSwap(&other->assumptions_);
9260  name_.Swap(&other->name_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
9261  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9262  PROTOBUF_FIELD_OFFSET(CpModelProto, solution_hint_)
9263  + sizeof(CpModelProto::solution_hint_)
9264  - PROTOBUF_FIELD_OFFSET(CpModelProto, objective_)>(
9265  reinterpret_cast<char*>(&objective_),
9266  reinterpret_cast<char*>(&other->objective_));
9267 }
9268 
9269 ::PROTOBUF_NAMESPACE_ID::Metadata CpModelProto::GetMetadata() const {
9270  return GetMetadataStatic();
9271 }
9272 
9273 
9274 // ===================================================================
9275 
9277  public:
9278 };
9279 
9280 CpSolverResponse::CpSolverResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena)
9281  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
9282  solution_(arena),
9283  solution_lower_bounds_(arena),
9284  solution_upper_bounds_(arena),
9285  tightened_variables_(arena),
9286  sufficient_assumptions_for_infeasibility_(arena) {
9287  SharedCtor();
9288  RegisterArenaDtor(arena);
9289  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverResponse)
9290 }
9291 CpSolverResponse::CpSolverResponse(const CpSolverResponse& from)
9292  : ::PROTOBUF_NAMESPACE_ID::Message(),
9293  solution_(from.solution_),
9294  solution_lower_bounds_(from.solution_lower_bounds_),
9295  solution_upper_bounds_(from.solution_upper_bounds_),
9296  tightened_variables_(from.tightened_variables_),
9297  sufficient_assumptions_for_infeasibility_(from.sufficient_assumptions_for_infeasibility_) {
9298  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9299  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9300  if (!from._internal_solution_info().empty()) {
9301  solution_info_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solution_info(),
9302  GetArena());
9303  }
9304  ::memcpy(&objective_value_, &from.objective_value_,
9305  static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
9306  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
9307  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverResponse)
9308 }
9309 
9310 void CpSolverResponse::SharedCtor() {
9311  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9312  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9313  ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9314  reinterpret_cast<char*>(&objective_value_) - reinterpret_cast<char*>(this)),
9315  0, static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
9316  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
9317 }
9318 
9319 CpSolverResponse::~CpSolverResponse() {
9320  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverResponse)
9321  SharedDtor();
9322  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9323 }
9324 
9325 void CpSolverResponse::SharedDtor() {
9326  GOOGLE_DCHECK(GetArena() == nullptr);
9327  solution_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9328 }
9329 
9330 void CpSolverResponse::ArenaDtor(void* object) {
9331  CpSolverResponse* _this = reinterpret_cast< CpSolverResponse* >(object);
9332  (void)_this;
9333 }
9334 void CpSolverResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9335 }
9336 void CpSolverResponse::SetCachedSize(int size) const {
9337  _cached_size_.Set(size);
9338 }
9339 const CpSolverResponse& CpSolverResponse::default_instance() {
9340  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto.base);
9341  return *internal_default_instance();
9342 }
9343 
9344 
9345 void CpSolverResponse::Clear() {
9346 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverResponse)
9347  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9348  // Prevent compiler warnings about cached_has_bits being unused
9349  (void) cached_has_bits;
9350 
9351  solution_.Clear();
9352  solution_lower_bounds_.Clear();
9353  solution_upper_bounds_.Clear();
9354  tightened_variables_.Clear();
9355  sufficient_assumptions_for_infeasibility_.Clear();
9356  solution_info_.ClearToEmpty();
9357  ::memset(&objective_value_, 0, static_cast<size_t>(
9358  reinterpret_cast<char*>(&num_lp_iterations_) -
9359  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
9360  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9361 }
9362 
9363 const char* CpSolverResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9364 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9365  while (!ctx->Done(&ptr)) {
9367  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9368  CHK_(ptr);
9369  switch (tag >> 3) {
9370  // .operations_research.sat.CpSolverStatus status = 1;
9371  case 1:
9372  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
9373  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9374  CHK_(ptr);
9375  _internal_set_status(static_cast<::operations_research::sat::CpSolverStatus>(val));
9376  } else goto handle_unusual;
9377  continue;
9378  // repeated int64 solution = 2;
9379  case 2:
9380  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9381  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution(), ptr, ctx);
9382  CHK_(ptr);
9383  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
9384  _internal_add_solution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9385  CHK_(ptr);
9386  } else goto handle_unusual;
9387  continue;
9388  // double objective_value = 3;
9389  case 3:
9390  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
9391  objective_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
9392  ptr += sizeof(double);
9393  } else goto handle_unusual;
9394  continue;
9395  // double best_objective_bound = 4;
9396  case 4:
9397  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
9398  best_objective_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
9399  ptr += sizeof(double);
9400  } else goto handle_unusual;
9401  continue;
9402  // bool all_solutions_were_found = 5;
9403  case 5:
9404  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
9405  all_solutions_were_found_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9406  CHK_(ptr);
9407  } else goto handle_unusual;
9408  continue;
9409  // int64 num_booleans = 10;
9410  case 10:
9411  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
9412  num_booleans_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9413  CHK_(ptr);
9414  } else goto handle_unusual;
9415  continue;
9416  // int64 num_conflicts = 11;
9417  case 11:
9418  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
9419  num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9420  CHK_(ptr);
9421  } else goto handle_unusual;
9422  continue;
9423  // int64 num_branches = 12;
9424  case 12:
9425  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
9426  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9427  CHK_(ptr);
9428  } else goto handle_unusual;
9429  continue;
9430  // int64 num_binary_propagations = 13;
9431  case 13:
9432  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
9433  num_binary_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9434  CHK_(ptr);
9435  } else goto handle_unusual;
9436  continue;
9437  // int64 num_integer_propagations = 14;
9438  case 14:
9439  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
9440  num_integer_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9441  CHK_(ptr);
9442  } else goto handle_unusual;
9443  continue;
9444  // double wall_time = 15;
9445  case 15:
9446  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
9447  wall_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
9448  ptr += sizeof(double);
9449  } else goto handle_unusual;
9450  continue;
9451  // double user_time = 16;
9452  case 16:
9453  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
9454  user_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
9455  ptr += sizeof(double);
9456  } else goto handle_unusual;
9457  continue;
9458  // double deterministic_time = 17;
9459  case 17:
9460  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
9461  deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
9462  ptr += sizeof(double);
9463  } else goto handle_unusual;
9464  continue;
9465  // repeated int64 solution_lower_bounds = 18;
9466  case 18:
9467  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
9468  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_lower_bounds(), ptr, ctx);
9469  CHK_(ptr);
9470  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144) {
9471  _internal_add_solution_lower_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9472  CHK_(ptr);
9473  } else goto handle_unusual;
9474  continue;
9475  // repeated int64 solution_upper_bounds = 19;
9476  case 19:
9477  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
9478  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_upper_bounds(), ptr, ctx);
9479  CHK_(ptr);
9480  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152) {
9481  _internal_add_solution_upper_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9482  CHK_(ptr);
9483  } else goto handle_unusual;
9484  continue;
9485  // string solution_info = 20;
9486  case 20:
9487  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
9488  auto str = _internal_mutable_solution_info();
9489  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
9490  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solution_info"));
9491  CHK_(ptr);
9492  } else goto handle_unusual;
9493  continue;
9494  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
9495  case 21:
9496  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
9497  ptr -= 2;
9498  do {
9499  ptr += 2;
9500  ptr = ctx->ParseMessage(_internal_add_tightened_variables(), ptr);
9501  CHK_(ptr);
9502  if (!ctx->DataAvailable(ptr)) break;
9503  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr));
9504  } else goto handle_unusual;
9505  continue;
9506  // double primal_integral = 22;
9507  case 22:
9508  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
9509  primal_integral_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
9510  ptr += sizeof(double);
9511  } else goto handle_unusual;
9512  continue;
9513  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
9514  case 23:
9515  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
9516  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_sufficient_assumptions_for_infeasibility(), ptr, ctx);
9517  CHK_(ptr);
9518  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184) {
9519  _internal_add_sufficient_assumptions_for_infeasibility(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9520  CHK_(ptr);
9521  } else goto handle_unusual;
9522  continue;
9523  // int64 num_restarts = 24;
9524  case 24:
9525  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
9526  num_restarts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9527  CHK_(ptr);
9528  } else goto handle_unusual;
9529  continue;
9530  // int64 num_lp_iterations = 25;
9531  case 25:
9532  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
9533  num_lp_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9534  CHK_(ptr);
9535  } else goto handle_unusual;
9536  continue;
9537  default: {
9538  handle_unusual:
9539  if ((tag & 7) == 4 || tag == 0) {
9540  ctx->SetLastTag(tag);
9541  goto success;
9542  }
9543  ptr = UnknownFieldParse(tag,
9544  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9545  ptr, ctx);
9546  CHK_(ptr != nullptr);
9547  continue;
9548  }
9549  } // switch
9550  } // while
9551 success:
9552  return ptr;
9553 failure:
9554  ptr = nullptr;
9555  goto success;
9556 #undef CHK_
9557 }
9558 
9559 ::PROTOBUF_NAMESPACE_ID::uint8* CpSolverResponse::_InternalSerialize(
9560  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9561  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverResponse)
9562  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9563  (void) cached_has_bits;
9564 
9565  // .operations_research.sat.CpSolverStatus status = 1;
9566  if (this->status() != 0) {
9567  target = stream->EnsureSpace(target);
9568  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
9569  1, this->_internal_status(), target);
9570  }
9571 
9572  // repeated int64 solution = 2;
9573  {
9574  int byte_size = _solution_cached_byte_size_.load(std::memory_order_relaxed);
9575  if (byte_size > 0) {
9576  target = stream->WriteInt64Packed(
9577  2, _internal_solution(), byte_size, target);
9578  }
9579  }
9580 
9581  // double objective_value = 3;
9582  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
9583  target = stream->EnsureSpace(target);
9584  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_objective_value(), target);
9585  }
9586 
9587  // double best_objective_bound = 4;
9588  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
9589  target = stream->EnsureSpace(target);
9590  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_best_objective_bound(), target);
9591  }
9592 
9593  // bool all_solutions_were_found = 5;
9594  if (this->all_solutions_were_found() != 0) {
9595  target = stream->EnsureSpace(target);
9596  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_all_solutions_were_found(), target);
9597  }
9598 
9599  // int64 num_booleans = 10;
9600  if (this->num_booleans() != 0) {
9601  target = stream->EnsureSpace(target);
9602  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_num_booleans(), target);
9603  }
9604 
9605  // int64 num_conflicts = 11;
9606  if (this->num_conflicts() != 0) {
9607  target = stream->EnsureSpace(target);
9608  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_num_conflicts(), target);
9609  }
9610 
9611  // int64 num_branches = 12;
9612  if (this->num_branches() != 0) {
9613  target = stream->EnsureSpace(target);
9614  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(12, this->_internal_num_branches(), target);
9615  }
9616 
9617  // int64 num_binary_propagations = 13;
9618  if (this->num_binary_propagations() != 0) {
9619  target = stream->EnsureSpace(target);
9620  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(13, this->_internal_num_binary_propagations(), target);
9621  }
9622 
9623  // int64 num_integer_propagations = 14;
9624  if (this->num_integer_propagations() != 0) {
9625  target = stream->EnsureSpace(target);
9626  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(14, this->_internal_num_integer_propagations(), target);
9627  }
9628 
9629  // double wall_time = 15;
9630  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
9631  target = stream->EnsureSpace(target);
9632  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_wall_time(), target);
9633  }
9634 
9635  // double user_time = 16;
9636  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
9637  target = stream->EnsureSpace(target);
9638  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_user_time(), target);
9639  }
9640 
9641  // double deterministic_time = 17;
9642  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
9643  target = stream->EnsureSpace(target);
9644  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_deterministic_time(), target);
9645  }
9646 
9647  // repeated int64 solution_lower_bounds = 18;
9648  {
9649  int byte_size = _solution_lower_bounds_cached_byte_size_.load(std::memory_order_relaxed);
9650  if (byte_size > 0) {
9651  target = stream->WriteInt64Packed(
9652  18, _internal_solution_lower_bounds(), byte_size, target);
9653  }
9654  }
9655 
9656  // repeated int64 solution_upper_bounds = 19;
9657  {
9658  int byte_size = _solution_upper_bounds_cached_byte_size_.load(std::memory_order_relaxed);
9659  if (byte_size > 0) {
9660  target = stream->WriteInt64Packed(
9661  19, _internal_solution_upper_bounds(), byte_size, target);
9662  }
9663  }
9664 
9665  // string solution_info = 20;
9666  if (this->solution_info().size() > 0) {
9667  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9668  this->_internal_solution_info().data(), static_cast<int>(this->_internal_solution_info().length()),
9669  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9670  "operations_research.sat.CpSolverResponse.solution_info");
9671  target = stream->WriteStringMaybeAliased(
9672  20, this->_internal_solution_info(), target);
9673  }
9674 
9675  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
9676  for (unsigned int i = 0,
9677  n = static_cast<unsigned int>(this->_internal_tightened_variables_size()); i < n; i++) {
9678  target = stream->EnsureSpace(target);
9679  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9680  InternalWriteMessage(21, this->_internal_tightened_variables(i), target, stream);
9681  }
9682 
9683  // double primal_integral = 22;
9684  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
9685  target = stream->EnsureSpace(target);
9686  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_primal_integral(), target);
9687  }
9688 
9689  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
9690  {
9691  int byte_size = _sufficient_assumptions_for_infeasibility_cached_byte_size_.load(std::memory_order_relaxed);
9692  if (byte_size > 0) {
9693  target = stream->WriteInt32Packed(
9694  23, _internal_sufficient_assumptions_for_infeasibility(), byte_size, target);
9695  }
9696  }
9697 
9698  // int64 num_restarts = 24;
9699  if (this->num_restarts() != 0) {
9700  target = stream->EnsureSpace(target);
9701  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(24, this->_internal_num_restarts(), target);
9702  }
9703 
9704  // int64 num_lp_iterations = 25;
9705  if (this->num_lp_iterations() != 0) {
9706  target = stream->EnsureSpace(target);
9707  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(25, this->_internal_num_lp_iterations(), target);
9708  }
9709 
9710  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9711  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9712  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9713  }
9714  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverResponse)
9715  return target;
9716 }
9717 
9718 size_t CpSolverResponse::ByteSizeLong() const {
9719 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverResponse)
9720  size_t total_size = 0;
9721 
9722  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9723  // Prevent compiler warnings about cached_has_bits being unused
9724  (void) cached_has_bits;
9725 
9726  // repeated int64 solution = 2;
9727  {
9728  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9729  Int64Size(this->solution_);
9730  if (data_size > 0) {
9731  total_size += 1 +
9732  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9733  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9734  }
9735  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9736  _solution_cached_byte_size_.store(cached_size,
9737  std::memory_order_relaxed);
9738  total_size += data_size;
9739  }
9740 
9741  // repeated int64 solution_lower_bounds = 18;
9742  {
9743  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9744  Int64Size(this->solution_lower_bounds_);
9745  if (data_size > 0) {
9746  total_size += 2 +
9747  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9748  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9749  }
9750  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9751  _solution_lower_bounds_cached_byte_size_.store(cached_size,
9752  std::memory_order_relaxed);
9753  total_size += data_size;
9754  }
9755 
9756  // repeated int64 solution_upper_bounds = 19;
9757  {
9758  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9759  Int64Size(this->solution_upper_bounds_);
9760  if (data_size > 0) {
9761  total_size += 2 +
9762  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9763  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9764  }
9765  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9766  _solution_upper_bounds_cached_byte_size_.store(cached_size,
9767  std::memory_order_relaxed);
9768  total_size += data_size;
9769  }
9770 
9771  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
9772  total_size += 2UL * this->_internal_tightened_variables_size();
9773  for (const auto& msg : this->tightened_variables_) {
9774  total_size +=
9775  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9776  }
9777 
9778  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
9779  {
9780  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9781  Int32Size(this->sufficient_assumptions_for_infeasibility_);
9782  if (data_size > 0) {
9783  total_size += 2 +
9784  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9785  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9786  }
9787  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9788  _sufficient_assumptions_for_infeasibility_cached_byte_size_.store(cached_size,
9789  std::memory_order_relaxed);
9790  total_size += data_size;
9791  }
9792 
9793  // string solution_info = 20;
9794  if (this->solution_info().size() > 0) {
9795  total_size += 2 +
9796  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
9797  this->_internal_solution_info());
9798  }
9799 
9800  // double objective_value = 3;
9801  if (!(this->objective_value() <= 0 && this->objective_value() >= 0)) {
9802  total_size += 1 + 8;
9803  }
9804 
9805  // .operations_research.sat.CpSolverStatus status = 1;
9806  if (this->status() != 0) {
9807  total_size += 1 +
9808  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status());
9809  }
9810 
9811  // bool all_solutions_were_found = 5;
9812  if (this->all_solutions_were_found() != 0) {
9813  total_size += 1 + 1;
9814  }
9815 
9816  // double best_objective_bound = 4;
9817  if (!(this->best_objective_bound() <= 0 && this->best_objective_bound() >= 0)) {
9818  total_size += 1 + 8;
9819  }
9820 
9821  // int64 num_booleans = 10;
9822  if (this->num_booleans() != 0) {
9823  total_size += 1 +
9824  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9825  this->_internal_num_booleans());
9826  }
9827 
9828  // int64 num_conflicts = 11;
9829  if (this->num_conflicts() != 0) {
9830  total_size += 1 +
9831  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9832  this->_internal_num_conflicts());
9833  }
9834 
9835  // int64 num_branches = 12;
9836  if (this->num_branches() != 0) {
9837  total_size += 1 +
9838  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9839  this->_internal_num_branches());
9840  }
9841 
9842  // int64 num_binary_propagations = 13;
9843  if (this->num_binary_propagations() != 0) {
9844  total_size += 1 +
9845  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9846  this->_internal_num_binary_propagations());
9847  }
9848 
9849  // int64 num_integer_propagations = 14;
9850  if (this->num_integer_propagations() != 0) {
9851  total_size += 1 +
9852  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9853  this->_internal_num_integer_propagations());
9854  }
9855 
9856  // double wall_time = 15;
9857  if (!(this->wall_time() <= 0 && this->wall_time() >= 0)) {
9858  total_size += 1 + 8;
9859  }
9860 
9861  // double user_time = 16;
9862  if (!(this->user_time() <= 0 && this->user_time() >= 0)) {
9863  total_size += 2 + 8;
9864  }
9865 
9866  // double deterministic_time = 17;
9867  if (!(this->deterministic_time() <= 0 && this->deterministic_time() >= 0)) {
9868  total_size += 2 + 8;
9869  }
9870 
9871  // double primal_integral = 22;
9872  if (!(this->primal_integral() <= 0 && this->primal_integral() >= 0)) {
9873  total_size += 2 + 8;
9874  }
9875 
9876  // int64 num_restarts = 24;
9877  if (this->num_restarts() != 0) {
9878  total_size += 2 +
9879  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9880  this->_internal_num_restarts());
9881  }
9882 
9883  // int64 num_lp_iterations = 25;
9884  if (this->num_lp_iterations() != 0) {
9885  total_size += 2 +
9886  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
9887  this->_internal_num_lp_iterations());
9888  }
9889 
9890  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9891  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9892  _internal_metadata_, total_size, &_cached_size_);
9893  }
9894  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9895  SetCachedSize(cached_size);
9896  return total_size;
9897 }
9898 
9899 void CpSolverResponse::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9900 // @@protoc_insertion_point(generalized_merge_from_start:operations_research.sat.CpSolverResponse)
9901  GOOGLE_DCHECK_NE(&from, this);
9902  const CpSolverResponse* source =
9903  ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<CpSolverResponse>(
9904  &from);
9905  if (source == nullptr) {
9906  // @@protoc_insertion_point(generalized_merge_from_cast_fail:operations_research.sat.CpSolverResponse)
9907  ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
9908  } else {
9909  // @@protoc_insertion_point(generalized_merge_from_cast_success:operations_research.sat.CpSolverResponse)
9910  MergeFrom(*source);
9911  }
9912 }
9913 
9914 void CpSolverResponse::MergeFrom(const CpSolverResponse& from) {
9915 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverResponse)
9916  GOOGLE_DCHECK_NE(&from, this);
9917  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9918  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9919  (void) cached_has_bits;
9920 
9921  solution_.MergeFrom(from.solution_);
9922  solution_lower_bounds_.MergeFrom(from.solution_lower_bounds_);
9923  solution_upper_bounds_.MergeFrom(from.solution_upper_bounds_);
9924  tightened_variables_.MergeFrom(from.tightened_variables_);
9925  sufficient_assumptions_for_infeasibility_.MergeFrom(from.sufficient_assumptions_for_infeasibility_);
9926  if (from.solution_info().size() > 0) {
9927  _internal_set_solution_info(from._internal_solution_info());
9928  }
9929  if (!(from.objective_value() <= 0 && from.objective_value() >= 0)) {
9930  _internal_set_objective_value(from._internal_objective_value());
9931  }
9932  if (from.status() != 0) {
9933  _internal_set_status(from._internal_status());
9934  }
9935  if (from.all_solutions_were_found() != 0) {
9936  _internal_set_all_solutions_were_found(from._internal_all_solutions_were_found());
9937  }
9938  if (!(from.best_objective_bound() <= 0 && from.best_objective_bound() >= 0)) {
9939  _internal_set_best_objective_bound(from._internal_best_objective_bound());
9940  }
9941  if (from.num_booleans() != 0) {
9942  _internal_set_num_booleans(from._internal_num_booleans());
9943  }
9944  if (from.num_conflicts() != 0) {
9945  _internal_set_num_conflicts(from._internal_num_conflicts());
9946  }
9947  if (from.num_branches() != 0) {
9948  _internal_set_num_branches(from._internal_num_branches());
9949  }
9950  if (from.num_binary_propagations() != 0) {
9951  _internal_set_num_binary_propagations(from._internal_num_binary_propagations());
9952  }
9953  if (from.num_integer_propagations() != 0) {
9954  _internal_set_num_integer_propagations(from._internal_num_integer_propagations());
9955  }
9956  if (!(from.wall_time() <= 0 && from.wall_time() >= 0)) {
9957  _internal_set_wall_time(from._internal_wall_time());
9958  }
9959  if (!(from.user_time() <= 0 && from.user_time() >= 0)) {
9960  _internal_set_user_time(from._internal_user_time());
9961  }
9962  if (!(from.deterministic_time() <= 0 && from.deterministic_time() >= 0)) {
9963  _internal_set_deterministic_time(from._internal_deterministic_time());
9964  }
9965  if (!(from.primal_integral() <= 0 && from.primal_integral() >= 0)) {
9966  _internal_set_primal_integral(from._internal_primal_integral());
9967  }
9968  if (from.num_restarts() != 0) {
9969  _internal_set_num_restarts(from._internal_num_restarts());
9970  }
9971  if (from.num_lp_iterations() != 0) {
9972  _internal_set_num_lp_iterations(from._internal_num_lp_iterations());
9973  }
9974 }
9975 
9976 void CpSolverResponse::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
9977 // @@protoc_insertion_point(generalized_copy_from_start:operations_research.sat.CpSolverResponse)
9978  if (&from == this) return;
9979  Clear();
9980  MergeFrom(from);
9981 }
9982 
9983 void CpSolverResponse::CopyFrom(const CpSolverResponse& from) {
9984 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverResponse)
9985  if (&from == this) return;
9986  Clear();
9987  MergeFrom(from);
9988 }
9989 
9990 bool CpSolverResponse::IsInitialized() const {
9991  return true;
9992 }
9993 
9994 void CpSolverResponse::InternalSwap(CpSolverResponse* other) {
9995  using std::swap;
9996  _internal_metadata_.Swap<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(&other->_internal_metadata_);
9997  solution_.InternalSwap(&other->solution_);
9998  solution_lower_bounds_.InternalSwap(&other->solution_lower_bounds_);
9999  solution_upper_bounds_.InternalSwap(&other->solution_upper_bounds_);
10000  tightened_variables_.InternalSwap(&other->tightened_variables_);
10001  sufficient_assumptions_for_infeasibility_.InternalSwap(&other->sufficient_assumptions_for_infeasibility_);
10002  solution_info_.Swap(&other->solution_info_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
10003  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10004  PROTOBUF_FIELD_OFFSET(CpSolverResponse, num_lp_iterations_)
10005  + sizeof(CpSolverResponse::num_lp_iterations_)
10006  - PROTOBUF_FIELD_OFFSET(CpSolverResponse, objective_value_)>(
10007  reinterpret_cast<char*>(&objective_value_),
10008  reinterpret_cast<char*>(&other->objective_value_));
10009 }
10010 
10011 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverResponse::GetMetadata() const {
10012  return GetMetadataStatic();
10013 }
10014 
10015 
10016 // @@protoc_insertion_point(namespace_scope)
10017 } // namespace sat
10018 } // namespace operations_research
10019 PROTOBUF_NAMESPACE_OPEN
10020 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena* arena) {
10021  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerVariableProto >(arena);
10022 }
10023 template<> PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena* arena) {
10024  return Arena::CreateMessageInternal< ::operations_research::sat::BoolArgumentProto >(arena);
10025 }
10026 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena* arena) {
10027  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerArgumentProto >(arena);
10028 }
10029 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena* arena) {
10030  return Arena::CreateMessageInternal< ::operations_research::sat::LinearExpressionProto >(arena);
10031 }
10032 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena* arena) {
10033  return Arena::CreateMessageInternal< ::operations_research::sat::LinearArgumentProto >(arena);
10034 }
10035 template<> PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena* arena) {
10036  return Arena::CreateMessageInternal< ::operations_research::sat::AllDifferentConstraintProto >(arena);
10037 }
10038 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena* arena) {
10039  return Arena::CreateMessageInternal< ::operations_research::sat::LinearConstraintProto >(arena);
10040 }
10041 template<> PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena* arena) {
10042  return Arena::CreateMessageInternal< ::operations_research::sat::ElementConstraintProto >(arena);
10043 }
10044 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena* arena) {
10045  return Arena::CreateMessageInternal< ::operations_research::sat::IntervalConstraintProto >(arena);
10046 }
10047 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena* arena) {
10048  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlapConstraintProto >(arena);
10049 }
10050 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena* arena) {
10051  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlap2DConstraintProto >(arena);
10052 }
10053 template<> PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena* arena) {
10054  return Arena::CreateMessageInternal< ::operations_research::sat::CumulativeConstraintProto >(arena);
10055 }
10056 template<> PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena* arena) {
10057  return Arena::CreateMessageInternal< ::operations_research::sat::ReservoirConstraintProto >(arena);
10058 }
10059 template<> PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena* arena) {
10060  return Arena::CreateMessageInternal< ::operations_research::sat::CircuitConstraintProto >(arena);
10061 }
10062 template<> PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena* arena) {
10063  return Arena::CreateMessageInternal< ::operations_research::sat::RoutesConstraintProto >(arena);
10064 }
10065 template<> PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena* arena) {
10066  return Arena::CreateMessageInternal< ::operations_research::sat::TableConstraintProto >(arena);
10067 }
10068 template<> PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena* arena) {
10069  return Arena::CreateMessageInternal< ::operations_research::sat::InverseConstraintProto >(arena);
10070 }
10071 template<> PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena* arena) {
10072  return Arena::CreateMessageInternal< ::operations_research::sat::AutomatonConstraintProto >(arena);
10073 }
10074 template<> PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena* arena) {
10075  return Arena::CreateMessageInternal< ::operations_research::sat::ConstraintProto >(arena);
10076 }
10077 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena* arena) {
10078  return Arena::CreateMessageInternal< ::operations_research::sat::CpObjectiveProto >(arena);
10079 }
10080 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena* arena) {
10081  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(arena);
10082 }
10083 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena* arena) {
10084  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto >(arena);
10085 }
10086 template<> PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena* arena) {
10087  return Arena::CreateMessageInternal< ::operations_research::sat::PartialVariableAssignment >(arena);
10088 }
10089 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena* arena) {
10090  return Arena::CreateMessageInternal< ::operations_research::sat::CpModelProto >(arena);
10091 }
10092 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena* arena) {
10093  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverResponse >(arena);
10094 }
10095 PROTOBUF_NAMESPACE_CLOSE
10096 
10097 // @@protoc_insertion_point(global_scope)
10098 #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:64
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< AutomatonConstraintProto > _instance
Definition: cp_model.pb.cc:112
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< BoolArgumentProto > _instance
Definition: cp_model.pb.cc:48
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CircuitConstraintProto > _instance
Definition: cp_model.pb.cc:96
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:116
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:136
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpObjectiveProto > _instance
Definition: cp_model.pb.cc:120
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CpSolverResponse > _instance
Definition: cp_model.pb.cc:140
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< CumulativeConstraintProto > _instance
Definition: cp_model.pb.cc:88
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DecisionStrategyProto_AffineTransformation > _instance
Definition: cp_model.pb.cc:124
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< DecisionStrategyProto > _instance
Definition: cp_model.pb.cc:128
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ElementConstraintProto > _instance
Definition: cp_model.pb.cc:72
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntegerArgumentProto > _instance
Definition: cp_model.pb.cc:52
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< IntegerVariableProto > _instance
Definition: cp_model.pb.cc:44
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:76
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< InverseConstraintProto > _instance
Definition: cp_model.pb.cc:108
static const ::operations_research::sat::LinearExpressionProto & target(const LinearArgumentProto *msg)
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearArgumentProto > _instance
Definition: cp_model.pb.cc:60
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearConstraintProto > _instance
Definition: cp_model.pb.cc:68
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< LinearExpressionProto > _instance
Definition: cp_model.pb.cc:56
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< NoOverlap2DConstraintProto > _instance
Definition: cp_model.pb.cc:84
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< NoOverlapConstraintProto > _instance
Definition: cp_model.pb.cc:80
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< PartialVariableAssignment > _instance
Definition: cp_model.pb.cc:132
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< ReservoirConstraintProto > _instance
Definition: cp_model.pb.cc:92
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< RoutesConstraintProto > _instance
Definition: cp_model.pb.cc:100
::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed< TableConstraintProto > _instance
Definition: cp_model.pb.cc:104
static void InitDefaultsscc_info_IntegerArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:323
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:280
static void InitDefaultsscc_info_NoOverlapConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:429
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:266
static void InitDefaultsscc_info_CumulativeConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:270
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable *const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_deps[1]
Definition: cp_model.pb.cc:948
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:978
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[25]
Definition: cp_model.pb.cc:494
#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:413
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:439
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:349
static void InitDefaultsscc_info_LinearConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:390
static void InitDefaultsscc_info_RoutesConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:468
static void InitDefaultsscc_info_LinearExpressionProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:403
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static void InitDefaultsscc_info_ElementConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:310
static void InitDefaultsscc_info_DecisionStrategyProto_AffineTransformation_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:297
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:293
static void InitDefaultsscc_info_AutomatonConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:157
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:426
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:253
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:333
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:491
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:400
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:154
static void InitDefaultsscc_info_LinearArgumentProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:376
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:346
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:336
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:496
static void InitDefaultsscc_info_CircuitConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:183
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:359
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:193
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:452
static void InitDefaultsscc_info_PartialVariableAssignment_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:442
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:416
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: cp_model.pb.cc:777
static bool dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:986
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once
Definition: cp_model.pb.cc:977
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:243
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:206
static void InitDefaultsscc_info_AllDifferentConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:144
static void InitDefaultsscc_info_TableConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:481
PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase *const descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_sccs[25]
Definition: cp_model.pb.cc:950
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:307
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo< 5 > scc_info_CpModelProto_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:235
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:170
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:167
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:465
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:363
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:320
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:225
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:373
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:386
static void InitDefaultsscc_info_ReservoirConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:455
static void InitDefaultsscc_info_CpSolverResponse_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:256
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:478
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3]
Definition: cp_model.pb.cc:495
static void InitDefaultsscc_info_ConstraintProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:196
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:180
static void InitDefaultsscc_info_DecisionStrategyProto_ortools_2fsat_2fcp_5fmodel_2eproto()
Definition: cp_model.pb.cc:283
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
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CpSolverStatus_descriptor()
class operations_research::sat::InverseConstraintProtoDefaultTypeInternal _InverseConstraintProto_default_instance_
Definition: cp_model.pb.h:105
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:108
class operations_research::sat::IntegerArgumentProtoDefaultTypeInternal _IntegerArgumentProto_default_instance_
Definition: cp_model.pb.h:96
class operations_research::sat::IntegerVariableProtoDefaultTypeInternal _IntegerVariableProto_default_instance_
Definition: cp_model.pb.h:99
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:117
class operations_research::sat::IntervalConstraintProtoDefaultTypeInternal _IntervalConstraintProto_default_instance_
Definition: cp_model.pb.h:102
class operations_research::sat::RoutesConstraintProtoDefaultTypeInternal _RoutesConstraintProto_default_instance_
Definition: cp_model.pb.h:129
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:111
class operations_research::sat::CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_
Definition: cp_model.pb.h:81
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_VariableSelectionStrategy_descriptor()
Definition: cp_model.pb.cc:989
class operations_research::sat::NoOverlapConstraintProtoDefaultTypeInternal _NoOverlapConstraintProto_default_instance_
Definition: cp_model.pb.h:120
class operations_research::sat::ElementConstraintProtoDefaultTypeInternal _ElementConstraintProto_default_instance_
Definition: cp_model.pb.h:93
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:114
bool DecisionStrategyProto_VariableSelectionStrategy_IsValid(int value)
Definition: cp_model.pb.cc:993
class operations_research::sat::PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
Definition: cp_model.pb.h:123
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:132
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:126
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
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