From 83661194222a59241c530446ff6f10ebcb20807b Mon Sep 17 00:00:00 2001 From: Prince Anuragi Date: Tue, 16 Jul 2024 17:43:33 +0530 Subject: [PATCH] Updates --- assets/{main-DsBJ_Z9_.js => main-FoKhYuvc.js} | 2 +- firm_assets/formalland.svg | 162 ++++++++++++++++++ index.html | 2 +- 3 files changed, 164 insertions(+), 2 deletions(-) rename assets/{main-DsBJ_Z9_.js => main-FoKhYuvc.js} (97%) create mode 100644 firm_assets/formalland.svg diff --git a/assets/main-DsBJ_Z9_.js b/assets/main-FoKhYuvc.js similarity index 97% rename from assets/main-DsBJ_Z9_.js rename to assets/main-FoKhYuvc.js index 284da6c..4756348 100644 --- a/assets/main-DsBJ_Z9_.js +++ b/assets/main-FoKhYuvc.js @@ -64,7 +64,7 @@ Error generating stack: `+i.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function zo(){return zo=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[l]=e[l]);return n}function Sh(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function xh(e,t){return e.button===0&&(!t||t==="_self")&&!Sh(e)}const Eh=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],kh="6";try{window.__reactRouterVersion=kh}catch{}const Th="startTransition",nu=gd[Th];function Ch(e){let{basename:t,children:n,future:r,window:l}=e,i=C.useRef();i.current==null&&(i.current=jm({window:l,v5Compat:!0}));let o=i.current,[a,s]=C.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=C.useCallback(f=>{u&&nu?nu(()=>s(f)):s(f)},[s,u]);return C.useLayoutEffect(()=>o.listen(d),[o,d]),C.createElement(gh,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o,future:r})}const Nh=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Ph=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Nn=C.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:i,replace:o,state:a,target:s,to:u,preventScrollReset:d,unstable_viewTransition:f}=t,m=wh(t,Eh),{basename:g}=C.useContext(Xt),y,w=!1;if(typeof u=="string"&&Ph.test(u)&&(y=u,Nh))try{let v=new URL(window.location.href),S=u.startsWith("//")?new URL(v.protocol+u):new URL(u),k=za(S.pathname,g);S.origin===v.origin&&k!=null?u=k+S.search+S.hash:w=!0}catch{}let E=th(u,{relative:l}),p=_h(u,{replace:o,state:a,target:s,preventScrollReset:d,relative:l,unstable_viewTransition:f});function c(v){r&&r(v),v.defaultPrevented||p(v)}return C.createElement("a",zo({},m,{href:y||E,onClick:w||i?r:c,ref:n,target:s}))});var ru;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(ru||(ru={}));var lu;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(lu||(lu={}));function _h(e,t){let{target:n,replace:r,state:l,preventScrollReset:i,relative:o,unstable_viewTransition:a}=t===void 0?{}:t,s=nh(),u=ni(),d=Ff(e,{relative:o});return C.useCallback(f=>{if(xh(f,n)){f.preventDefault();let m=r!==void 0?r:zl(u)===zl(d);s(e,{replace:m,state:l,preventScrollReset:i,relative:o,unstable_viewTransition:a})}},[u,s,d,r,l,n,e,i,o,a])}const jh=()=>h.jsx("footer",{className:"bg-gray-800 text-white p-4 mt-8",children:h.jsxs("div",{className:"container mx-auto text-center",children:[h.jsx("p",{children:"Powered by Nethermind"}),h.jsxs("p",{className:"text-sm mt-2",children:["Is your company missing or incorrect?"," ",h.jsx("a",{href:"https://github.com/NethermindEth/formalverification.xyz/tree/master/src/data",className:"underline hover:text-gray-300",children:"Add or update via PR"})]}),h.jsx("p",{className:"text-sm mt-2",children:"© 2024 Nethermind. All rights reserved."})]})}),Lh=()=>h.jsx("header",{className:"bg-gray-800 text-white p-4 mb-9",children:h.jsxs("div",{className:"container mx-auto flex justify-between items-center",children:[h.jsx("h1",{className:"text-2xl font-bold",children:"Formal Verification in Crypto"}),h.jsxs("nav",{children:[h.jsx(Nn,{to:"/",className:"hover:text-gray-300 mr-4",children:"Home"}),h.jsx(Nn,{to:"/about",className:"hover:text-gray-300 mr-4",children:"About"})]})]})}),At=[{id:2,name:"ConsenSys Diligence",specialties:["Smart Contract Verification","DeFi Protocol Verification"],description:"As part of ConsenSys, Diligence offers advanced security services for Ethereum-based projects, including manual audits and automated analysis with tools like MythX.",languages:["Solidity"],stacks:["Ethereum"],fv_language:["Hoare Logic"],svg:"consensys.svg",link:"https://consensys.net/diligence/"},{id:3,name:"Runtime Verification",specialties:["Smart Contract Verification","Virtual Machine Verification"],description:"Focused on runtime verification techniques, they provide thorough smart contract verification, analysis, and advisory services for blockchain technologies.",languages:["Solidity","Vyper","Haskell"],stacks:["Ethereum","Tezos","Algorand"],fv_language:["K Framework","Coq"],svg:"runtime.svg",link:"https://runtimeverification.com/"},{id:4,name:"Veridise",specialties:["Zero-Knowledge Circuit Verification","Smart Contract Verification"],description:"Veridise is known for its rigorous security audits and formal verification of blockchain systems, leveraging state-of-the-art research tools.",languages:["Solidity","Rust","Cairo"],stacks:["Ethereum","Solana","Starknet"],fv_language:["Coq","Z3"],svg:"veridise.svg",link:"https://www.veridise.com/"},{id:5,name:"Cyberscope",specialties:["Smart Contract Verification","DeFi Protocol Verification"],description:"Cyberscope specializes in formal verification, offering tailored solutions for smart contract projects, ensuring rigorous mathematical proof of correctness and security.",languages:["Solidity","Vyper"],stacks:["Ethereum","Binance Smart Chain"],fv_language:["Coq","TLA+"],svg:"cyberscope.svg",link:"https://www.cyberscope.io/"},{id:6,name:"ShellBoxes",specialties:["Smart Contract Verification","Cryptographic Primitive Verification"],description:"ShellBoxes offers comprehensive formal verification and security audits for various blockchain ecosystems, providing detailed reports and mitigation strategies.",languages:["Solidity","Rust","PyTeal"],stacks:["Ethereum","Polygon","Algorand"],fv_language:["Isabelle/HOL","TLA+"],svg:"shellboxes.svg",link:"https://www.shellboxes.com/"},{id:7,name:"Nethermind",specialties:["Smart Contract Verification","Zero-Knowledge Circuit Verification"],description:"Nethermind offers formal verification services for EVM and StarkNet smart contracts, utilizing tools like Horus to ensure the correctness and security of blockchain applications.",languages:["Solidity","Cairo"],stacks:["Ethereum","Starknet"],fv_language:["Lean 4","SMT Solvers (Z3, CVC4)"],svg:"nethermind.svg",link:"https://www.nethermind.io/formal-verification"},{id:8,name:"Formal Land",specialties:["Smart Contract Verification","Cryptographic Primitive Verification"],description:"Formal Land offers advanced formal verification services, specializing in translating code from languages like Rust, OCaml, Solidity, and TypeScript to the Coq proof system. They are known for their rigorous methods and innovative tools, ensuring the highest level of software security.",languages:["Solidity","Rust","OCaml","TypeScript"],stacks:["Ethereum","Tezos"],fv_language:["Coq","Z3"],svg:"formalland.svg",link:"https://formal.land/"}],ri="https://formal-verification.xyz/";var $f={exports:{}},Oh="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Rh=Oh,Ih=Rh;function Hf(){}function Bf(){}Bf.resetWarningCache=Hf;var Ah=function(){function e(r,l,i,o,a,s){if(s!==Ih){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Bf,resetWarningCache:Hf};return n.PropTypes=n,n};$f.exports=Ah();var zh=$f.exports;const $=Er(zh);function Mh(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Vf=C,Fh=Mh(Vf);function iu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Dh(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Uh=!!(typeof window<"u"&&window.document&&window.document.createElement);function $h(e,t,n){if(typeof e!="function")throw new Error("Expected reducePropsToState to be a function.");if(typeof t!="function")throw new Error("Expected handleStateChangeOnClient to be a function.");if(typeof n<"u"&&typeof n!="function")throw new Error("Expected mapStateOnServer to either be undefined or a function.");function r(l){return l.displayName||l.name||"Component"}return function(i){if(typeof i!="function")throw new Error("Expected WrappedComponent to be a React component.");var o=[],a;function s(){a=e(o.map(function(d){return d.props})),u.canUseDOM?t(a):n&&(a=n(a))}var u=function(d){Dh(f,d);function f(){return d.apply(this,arguments)||this}f.peek=function(){return a},f.rewind=function(){if(f.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var y=a;return a=void 0,o=[],y};var m=f.prototype;return m.UNSAFE_componentWillMount=function(){o.push(this),s()},m.componentDidUpdate=function(){s()},m.componentWillUnmount=function(){var y=o.indexOf(this);o.splice(y,1),s()},m.render=function(){return Fh.createElement(i,this.props)},f}(Vf.PureComponent);return iu(u,"displayName","SideEffect("+r(i)+")"),iu(u,"canUseDOM",Uh),u}}var Hh=$h;const Bh=Er(Hh);var Vh=typeof Element<"u",Wh=typeof Map=="function",Qh=typeof Set=="function",Kh=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function ul(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,l;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!ul(e[r],t[r]))return!1;return!0}var i;if(Wh&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(i=e.entries();!(r=i.next()).done;)if(!t.has(r.value[0]))return!1;for(i=e.entries();!(r=i.next()).done;)if(!ul(r.value[1],t.get(r.value[0])))return!1;return!0}if(Qh&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(i=e.entries();!(r=i.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if(Kh&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(l=Object.keys(e),n=l.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,l[r]))return!1;if(Vh&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((l[r]==="_owner"||l[r]==="__v"||l[r]==="__o")&&e.$$typeof)&&!ul(e[l[r]],t[l[r]]))return!1;return!0}return e!==e&&t!==t}var Yh=function(t,n){try{return ul(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const Xh=Er(Yh);/* + */function zo(){return zo=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[l]=e[l]);return n}function Sh(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function xh(e,t){return e.button===0&&(!t||t==="_self")&&!Sh(e)}const Eh=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],kh="6";try{window.__reactRouterVersion=kh}catch{}const Th="startTransition",nu=gd[Th];function Ch(e){let{basename:t,children:n,future:r,window:l}=e,i=C.useRef();i.current==null&&(i.current=jm({window:l,v5Compat:!0}));let o=i.current,[a,s]=C.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=C.useCallback(f=>{u&&nu?nu(()=>s(f)):s(f)},[s,u]);return C.useLayoutEffect(()=>o.listen(d),[o,d]),C.createElement(gh,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:o,future:r})}const Nh=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Ph=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Nn=C.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:i,replace:o,state:a,target:s,to:u,preventScrollReset:d,unstable_viewTransition:f}=t,m=wh(t,Eh),{basename:g}=C.useContext(Xt),y,w=!1;if(typeof u=="string"&&Ph.test(u)&&(y=u,Nh))try{let v=new URL(window.location.href),S=u.startsWith("//")?new URL(v.protocol+u):new URL(u),k=za(S.pathname,g);S.origin===v.origin&&k!=null?u=k+S.search+S.hash:w=!0}catch{}let E=th(u,{relative:l}),p=_h(u,{replace:o,state:a,target:s,preventScrollReset:d,relative:l,unstable_viewTransition:f});function c(v){r&&r(v),v.defaultPrevented||p(v)}return C.createElement("a",zo({},m,{href:y||E,onClick:w||i?r:c,ref:n,target:s}))});var ru;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(ru||(ru={}));var lu;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(lu||(lu={}));function _h(e,t){let{target:n,replace:r,state:l,preventScrollReset:i,relative:o,unstable_viewTransition:a}=t===void 0?{}:t,s=nh(),u=ni(),d=Ff(e,{relative:o});return C.useCallback(f=>{if(xh(f,n)){f.preventDefault();let m=r!==void 0?r:zl(u)===zl(d);s(e,{replace:m,state:l,preventScrollReset:i,relative:o,unstable_viewTransition:a})}},[u,s,d,r,l,n,e,i,o,a])}const jh=()=>h.jsx("footer",{className:"bg-gray-800 text-white p-4 mt-8",children:h.jsxs("div",{className:"container mx-auto text-center",children:[h.jsx("p",{children:"Powered by Nethermind"}),h.jsxs("p",{className:"text-sm mt-2",children:["Is your company missing or incorrect?"," ",h.jsx("a",{href:"https://github.com/NethermindEth/formalverification.xyz/tree/master/src/data",className:"underline hover:text-gray-300",children:"Add or update via PR"})]}),h.jsx("p",{className:"text-sm mt-2",children:"© 2024 Nethermind. All rights reserved."})]})}),Lh=()=>h.jsx("header",{className:"bg-gray-800 text-white p-4 mb-9",children:h.jsxs("div",{className:"container mx-auto flex justify-between items-center",children:[h.jsx("h1",{className:"text-2xl font-bold",children:"Formal Verification in Crypto"}),h.jsxs("nav",{children:[h.jsx(Nn,{to:"/",className:"hover:text-gray-300 mr-4",children:"Home"}),h.jsx(Nn,{to:"/about",className:"hover:text-gray-300 mr-4",children:"About"})]})]})}),At=[{id:2,name:"ConsenSys Diligence",specialties:["Smart Contract Verification","DeFi Protocol Verification"],description:"As part of ConsenSys, Diligence offers advanced security services for Ethereum-based projects, including manual audits and automated analysis with tools like MythX.",languages:["Solidity"],stacks:["Ethereum"],fv_language:["Hoare Logic"],svg:"consensys.svg",link:"https://consensys.net/diligence/"},{id:3,name:"Runtime Verification",specialties:["Smart Contract Verification","Virtual Machine Verification"],description:"Focused on runtime verification techniques, they provide thorough smart contract verification, analysis, and advisory services for blockchain technologies.",languages:["Solidity","Vyper","Haskell"],stacks:["Ethereum","Tezos","Algorand"],fv_language:["K Framework","Coq"],svg:"runtime.svg",link:"https://runtimeverification.com/"},{id:4,name:"Veridise",specialties:["Zero-Knowledge Circuit Verification","Smart Contract Verification"],description:"Veridise is known for its rigorous security audits and formal verification of blockchain systems, leveraging state-of-the-art research tools.",languages:["Solidity","Rust","Cairo"],stacks:["Ethereum","Solana","Starknet"],fv_language:["Coq","Z3"],svg:"veridise.svg",link:"https://www.veridise.com/"},{id:5,name:"Cyberscope",specialties:["Smart Contract Verification","DeFi Protocol Verification"],description:"Cyberscope specializes in formal verification, offering tailored solutions for smart contract projects, ensuring rigorous mathematical proof of correctness and security.",languages:["Solidity","Vyper"],stacks:["Ethereum","Binance Smart Chain"],fv_language:["Coq","TLA+"],svg:"cyberscope.svg",link:"https://www.cyberscope.io/"},{id:6,name:"ShellBoxes",specialties:["Smart Contract Verification","Cryptographic Primitive Verification"],description:"ShellBoxes offers comprehensive formal verification and security audits for various blockchain ecosystems, providing detailed reports and mitigation strategies.",languages:["Solidity","Rust","PyTeal"],stacks:["Ethereum","Polygon","Algorand"],fv_language:["Isabelle/HOL","TLA+"],svg:"shellboxes.svg",link:"https://www.shellboxes.com/"},{id:7,name:"Nethermind",specialties:["Smart Contract Verification","Zero-Knowledge Circuit Verification"],description:"Nethermind offers formal verification services for EVM and StarkNet smart contracts, utilizing tools like Horus to ensure the correctness and security of blockchain applications.",languages:["Solidity","Cairo"],stacks:["Ethereum","Starknet"],fv_language:["Lean 4","SMT Solvers (Z3, CVC4)"],svg:"nethermind.svg",link:"https://www.nethermind.io/formal-verification"},{id:8,name:"Formal Land",specialties:["Smart Contract Verification","Consensus Protocol Verification"],description:"Formal Land offers advanced formal verification services, specializing in translating code from languages like Rust, OCaml, Solidity, and TypeScript to the Coq proof system. They are known for their rigorous methods and innovative tools, ensuring the highest level of software security.",languages:["Solidity","Rust","OCaml","TypeScript"],stacks:["Ethereum","Aleph Zero","Tezos"],fv_language:["Coq"],svg:"formalland.svg",link:"https://formal.land/"}],ri="https://formal-verification.xyz/";var $f={exports:{}},Oh="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",Rh=Oh,Ih=Rh;function Hf(){}function Bf(){}Bf.resetWarningCache=Hf;var Ah=function(){function e(r,l,i,o,a,s){if(s!==Ih){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}e.isRequired=e;function t(){return e}var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Bf,resetWarningCache:Hf};return n.PropTypes=n,n};$f.exports=Ah();var zh=$f.exports;const $=Er(zh);function Mh(e){return e&&typeof e=="object"&&"default"in e?e.default:e}var Vf=C,Fh=Mh(Vf);function iu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Dh(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var Uh=!!(typeof window<"u"&&window.document&&window.document.createElement);function $h(e,t,n){if(typeof e!="function")throw new Error("Expected reducePropsToState to be a function.");if(typeof t!="function")throw new Error("Expected handleStateChangeOnClient to be a function.");if(typeof n<"u"&&typeof n!="function")throw new Error("Expected mapStateOnServer to either be undefined or a function.");function r(l){return l.displayName||l.name||"Component"}return function(i){if(typeof i!="function")throw new Error("Expected WrappedComponent to be a React component.");var o=[],a;function s(){a=e(o.map(function(d){return d.props})),u.canUseDOM?t(a):n&&(a=n(a))}var u=function(d){Dh(f,d);function f(){return d.apply(this,arguments)||this}f.peek=function(){return a},f.rewind=function(){if(f.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var y=a;return a=void 0,o=[],y};var m=f.prototype;return m.UNSAFE_componentWillMount=function(){o.push(this),s()},m.componentDidUpdate=function(){s()},m.componentWillUnmount=function(){var y=o.indexOf(this);o.splice(y,1),s()},m.render=function(){return Fh.createElement(i,this.props)},f}(Vf.PureComponent);return iu(u,"displayName","SideEffect("+r(i)+")"),iu(u,"canUseDOM",Uh),u}}var Hh=$h;const Bh=Er(Hh);var Vh=typeof Element<"u",Wh=typeof Map=="function",Qh=typeof Set=="function",Kh=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function ul(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,l;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!ul(e[r],t[r]))return!1;return!0}var i;if(Wh&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(i=e.entries();!(r=i.next()).done;)if(!t.has(r.value[0]))return!1;for(i=e.entries();!(r=i.next()).done;)if(!ul(r.value[1],t.get(r.value[0])))return!1;return!0}if(Qh&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(i=e.entries();!(r=i.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if(Kh&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(l=Object.keys(e),n=l.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,l[r]))return!1;if(Vh&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((l[r]==="_owner"||l[r]==="__v"||l[r]==="__o")&&e.$$typeof)&&!ul(e[l[r]],t[l[r]]))return!1;return!0}return e!==e&&t!==t}var Yh=function(t,n){try{return ul(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const Xh=Er(Yh);/* object-assign (c) Sindre Sorhus @license MIT diff --git a/firm_assets/formalland.svg b/firm_assets/formalland.svg new file mode 100644 index 0000000..c415e5c --- /dev/null +++ b/firm_assets/formalland.svg @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/index.html b/index.html index 44f07a6..b97c7f1 100644 --- a/index.html +++ b/index.html @@ -23,7 +23,7 @@ Learn how to configure a non-root public URL by running `npm run build`. --> Formal Verification Companies in Crypto - +