CINXE.COM
Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;max-width:60rem;padding-left:1.5rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{font-size:1.5rem;font-weight:500;line-height:2.25rem}@media (width <= 720px){.h2{font-size:1.25rem;line-height:1.5rem}}#challenge-error-text{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+);background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme:dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="390"></head><body class="no-js"><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt={cvId: '3',cZone: "stackoverflow.com",cType: 'managed',cRay: '8e7585a25a4dce43',cH: 'vWklU9OrQc6ouay7eYxN9KZq84N3Fun0HGb1V7vaxvc-1732410655-1.2.1.1-sWcn7HM.FvVGiN4YCn9M9B9x0D1u0keeFB6DAgRLPuX2nNXbGD5fcKzVMf8aqAwN',cUPMDTk: "\/questions\/tagged\/or-tools+or+cp-sat?__cf_chl_tk=8Waef0.BCoUXxeFUSiViHR1K2XGFR00hT416ae4ZwLM-1732410655-1.0.1.1-jDNTYboCrl6tJTqCvuETGb6be9tJaNebNRDZH_ATJ7g",cFPWv: 'g',cITimeS: '1732410655',cTTimeMs: '1000',cMTimeMs: '390000',cTplC: 0,cTplV: 5,cTplB: 'cf',cK: "",fa: "\/questions\/tagged\/or-tools+or+cp-sat?__cf_chl_f_tk=8Waef0.BCoUXxeFUSiViHR1K2XGFR00hT416ae4ZwLM-1732410655-1.0.1.1-jDNTYboCrl6tJTqCvuETGb6be9tJaNebNRDZH_ATJ7g",md: "Z9OQFhDDp0EZ1spyzyTt9lc0qx401TAxKnCPI29GHPQ-1732410655-1.2.1.1-TNDt02XPODgtZ2yea01ByUUrb2ZxkNxYhy_Hc4G_5jLvl8pyU0MffCPOeTeLn32xku5mo4J.0zzoYMOenGS.FveAOCzGoDQab.RgdgGg4cVKrsOThfbqjabPXin17Pol3cqy91_vMO_S4LeGBk8ZTg0Hy8vGD3Q.LlS2wgw0Nh.k_CET0i8VgiYIRZzwKdldljq3F4Z2VqhGa3KelZBdbMC9S7hPpbzAI74vyKlXva_IB49P3LCOtQv8Ff8L.j.lKxxTassBUBs0Qmlhl99ftCZdibaxURc9PFymxBvASb61JXVXnLz.G6mcmTF20Mi9EIymAL6_8Q7.w6eBj9vfU14hTMF90giJqSBm57kmQ3.vhoUFCc00IDrauuFkQYrK.XSmq3QkqcaZORiBjIpktt24ZVwmr8smc754lc3em5EuvOpaXWEzde7AHSGcdTQJ5bTdmf0KzJFXzbHFEzcvy4kfzKwYGS70Tm0HALBtazf8wZeiR7vRzLW4L7NhK098QIe4GU6WjkQ9LARnMocbonyFaasoVEW_DhsPAY7JpdR1nKUZJ8QDqFWXo.CTdSqECZ3nCBvoSGmPsjAozC.HUxBwvKMMMczgU3ktOW74FhmNCawsYjL95T38KIaAYkHSU1849PyJ5wLXcEG.CFI.5IO8NWwwOTCg1fAU4Qt4JlgNrIaQPTmGX2npSxeHJM.IJ3vE0Ut6SCzNoZhDbMZ3jLCdNcBjB63MJAXBaKYtUqcfdkw2U0wkST.Nn.P24xK.HRN.y0jZC.__eP1R.gqjyao_2ikn_ShZhPIvESVnsKEJBnvQ8Xlnm4dO5ewY9pbivrlUHQo09THVt3LcS5McutEQ2wGP67JBDTBANUV5i6fMzZMzlWuSLGbNxVFGts5EA77Oq_aFvQaLgQFvR0cCH.xyalWTQ4KZWEYeyRDnsVHkgAnmLvTW3KPdMNOlFfZTuRX.ylp_WcOkX.Q6.hOKQbhDTrlAcW4bkvMxoEFQpqx39JMOQX.wH9D1KV5DDh0ZwWzoWD_hF6yl9GmNR6po9zuBOJOODgVp_OkZ_FexFhBb3wgoasXabt4545dE3FFb24kwqRsAEo9gQ6xAzeW16q2dPjuCW7Pjbyf2g5Ht_vQYACHzHILPHQix9KMpWLIQScFxWEvyv80rHuqoXg1tPab3qAWW5T_bo0KOJGf45cpaiddWFFUZrly2uQPz.XmA6u2zJsCVOKfxlToLZfYbtdMpJ8N8YZ4dI6cLfOhmUdaRy3XKmBYe.FTD2qS6VVCwJvaeZgl0te8W08Zpj11QQmh7oiuFPRfqDEcox5YB5Y9TdQfsSundTtGo.Z4yqJSsE5kq6w34opn9dhNNtU2.A6jSjsLrzr7vvFRREH69tOdmxpO8x40mSWQlg2KtF4SiZHin_dqkCiuBpriwhIt5zZ9Jt1xf0JHJS9DmozXKHWk7NOLcbobfYFaUIreOQrU9S9ZPYOGDTgt4PsQ_9tlfhSEAA8pgHNBK8DGcwPPnXpAAWaXxk9X5wovrCWyi_Pm2hD4CPM2iGvJVLQXnljtNUhnSDMdCZWtoMGkvj2LEBu4ZMIkI.vd6ikDzNCWbvGuTSZKvIGFaPfW0y_NgoGIpstHe1O2NmKg7uvse7FgkT6tXZdRyIE46MtafG6mezchpd6QKE3bWSMT4.Yj79M0ghKHdS30Oy88l2cwvJmLmqjP4wlkNbTvAP04F5YjiA1Jed9jKL8D2lYbVDBtOgFV.zOXOdbfJPqZp_1KlfQY4g9XRGsnFEHCzsBhx8_uWXxWeZ1NHvc5H2gBsdsrpALFSgy_m8yJRKZeq3jotBI9803FRnSavxwQunYY9Z2LzMtM4b9znnu3hV9CHpHRQ20GMUT2fKU7LIl5Zb4Kl9YpqZmIMe32yVToCO52iBKRfXVoIDScxuTu6GZwhNJdo1iXyAkTUJ8LMOFNB5UMldAM1cbaXxBYj4JKcSu2SvyNtOeWyUB0nvd9Ekpsfe3vNezLk1TpwQ090P.OvlG2Uzv_kOJ_81uvfCG8NUuGygKGJY8C1HapbfpY2tqbyMO_9zTUtjyaR1A5NAcm6Ur2tIRx6AngH39FUEeWbZE51oUHrgfghLYSXcFN9lzUNJ1i2orem5PCzr5MnkY6XyvB9KAj_vUbuhhxiUgk82Ujuft5WYPGRnUT73YpUVkehSrsfE.yJSsV4uM0syz6mXbPSo1fQ6z44t_usrW_z7QJGGjt67h_nqIfjA6V7BxcQ7KU5niw01AVogFictVam10ntHQr.5Tu3XVEJzOeEROiM7W6MhAl44AaFYei9QjyqLkUk1vcGYRMLLQJfaFR4lBAcH90O6Z33CEhJEz9f.8eTEJQ2..ZVXF6iqMTbsPfTOOJXfOQAriNrzpiXSKeHACzycjdOV4Mpd5DSVhAMIqqjW7JMtShZCBRhiLvMNR5j.iyJeQe8U2.PCQdrDMcl17M_cisygw20ZmLzucsMqRyKRVpx8Kyq4yY_hDT8Pq9Kguqs4JckVlsLXOSbrw45FYTwegQmcGqCjYLv1gwC4sc9MbtK4O.FR_C4iu_qZs.S1dbJb6GNDB666R7Dy8WY0E8vaM6ervLKsHJ6YWbEaTphmLBbd8xTR_E9ZiUJWH52yOXl01FsPWSeD6svf0PaYgD4JbPv2np3Vm6mA9f0NWVKp7gCoGx1KPzql8D1AokDbbbZPyWUqKiq.goRtyDQ03artJBgoBokb0gQeSnJW6YjozpPPVTyfbkoIR3ovZyUyr8FkR8qotBMa0WeFelwDegZrvrx7FSUsCu9WLqQIxMzGfWj3CjIXbEbxDVjlFsWrlfr1ZgDceqTKK9Xcoh4c4QTQt6suRYwhIONo3MSd8.7aUX53pth_ouUhSivj_1phN0tSPEvb2dVe_VbWtnpl3GhrvNckytBnodc_fsblRaDrstB4zAPUUBGUOtowFUMT.anf.fjb5dhLW9CDjYKP1oAEj5MRX4",mdrd: "q7ryvJ31oxrDk.lb8vvyglJF1yedU92kuTo14xU.FMA-1732410655-1.2.1.1-eT8YrobbnsNYt08cDpni1i.7C6V_MrAVuvcYlRJgWUKcKLLOgamBUey117vkIjPPYVhYhdsEowBJZklnc9WegHVWWtVAVbkpaHOFgDsMsM9kFJzfFN5BMvFKJI10fMItKVDjDFhR7CAgh1qe58TWCeJr.BW3pSJ9vPMZTCmh4XnwlIV6H6vCKZnRGiTn1reZ8.4KRaZq8jmWYc7wdZ0vkMYmX_RGGp8IYFNmY721yplTBQ.o.CkiaRCklgGYgwH9tl60doXCebXpcZaSv63MTlKzNIhDLmijCja6YKkCYVw30RoWpBqJnxLb8A3ZtMjKnOnCxWzlZ8er5oDTzRypgzzk5h.p9MUx4AJVVDHHau9RQAVCZ81xZDS7aM3iH7s47Ur_OhvpTT5qalR5el1bydhbTsCTKbtTfdFfhjpSSwCt1IHi16AWOTHO_D8fDATrXPvdjINnaJI_SFSYGOGNjikGFzlCDb_Frv0Nj_wr3ycVpzDiwituXQTF.9puiWpQOEa_K_pLEa9e0HbO6.KHQY4FoQgOYqa5dOArpAKM_97.v2cwbqAQFw28j9JytZT8mp0WmOk2BjOTgRUexLYk85PEcK8vDEDBWQtfx2ZJY2Ew.1Dqb_zyg1xnj9gPioSwbRycNnq4Bs2Uz9gYPNift9Qaz6aQ7xXkArEqKHFv833Gjj4wJKkU8Lmt1iH13NFzyJL4N3ZmKRCMhXE0E2tFmXpUC2_o1g05tLwvCPfdKSo1GT.NhuPJHBmyrujSjlkPgrhpC5TW1yKN6dvurTfkeaM62LNa76XAh2kzAK83.6sZmT43L1Kidc3VKc1j4t0bL6nT9px1PQoAvBEm9uJAFJPHSd5Bo8ggI7PJzuamIEf.T1uV5Xw0S40A9hR3PN_umWbr2zbst37rZD7DMn4UZt8qBr6IZKbTSEkkXr.vlPhRvKxbnpknTflTr78DEwtKakfGK_eb0r3W.2ezWC9B0w4h3nNqP6TuypBpE.Cd4eLfY.54sGpJbqK4BT2tgQ4ABkslaiby2MJao_IEaGeV37_hh3iP3iuJOUQI1uVjrHar7JqecfNHHt0W6QFrfIqE4P6qz_9qQD0BSoW6bNPEnGm8aJBZ5D_PVwW3813YU52qemZ_3y6jjMZskZyBLRX6fMNpObuNO5qAUmdb1i_hh90OC2K8FUmMCQKj8eK5sXr97Qu3GL01LLKflodqXcqgiThiubj6mBAyOrE9eBZXNiT68LbLbZ5AOoPiBDlR3U5WhnA6HgE2sbiu29CD3iq1CEJ6Pfz6lavukyemw3JAfkJptdA_LKiyX0YEP3e9v_qVD1FXOA9BSIO30puuoh2exJsp.A6jD3zcgwDgKqWIP.3CUueOj_ftTIZXfBueIMAm4OO_uKqmOG8FeDARWmgOy0Kw0lK3_uco_MnKSQd6KQvYTPAOCBT.bBByx0aEooK0p1uyJVF_5EhlPSJjHymAfCUQOU1.Keksxv9IdEKub5VHODbHMv6oUr1C03cPPV4h7ISeC7SDhNTxjhsiJu4ta0GqDXF.7toEIOMU81uE.wiJoM8pV4AX.88FU1Sk4I2RXVAfxBoUWdJ3BNQp5ECdBtwwNgLrEKLvj6JC2UAJ1xgNre37SDmec3FIZ4krvPYHvgTXq5zQyLN1bg0h4JStcvPQ0.iNMrB7ySVXx9A3RJTS4aEk6umKIgEwXIkcEbOCwW_pTFlh6hsxBul1yXv5YgqbWXrN.jme0nZjlJLkygnErFpLEUHe55hx9xivoFJt.KJZwBg85I1o5VxTMJvObq2AeM9CySCOoi7a.OJbB9xG5oPrewMcW1Zu0x0jJsbUFA6aTdLr4IEqpEW9i1HYlKD5L9Qoc8MBHnnLQspeh35wlGlL7u_jTjKeiLd3QkQytMa.jyDGti7l1wRZwmBCHPAY2YlrGqk6foyiixAQm_93.X4Rr3XB0hdq25WqbSBh_Smb_dYLNv.JWNXIGFcd"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=8e7585a25a4dce43';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null, "\/questions\/tagged\/or-tools+or+cp-sat?__cf_chl_rt_tk=8Waef0.BCoUXxeFUSiViHR1K2XGFR00hT416ae4ZwLM-1732410655-1.0.1.1-jDNTYboCrl6tJTqCvuETGb6be9tJaNebNRDZH_ATJ7g" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>