Virtue Poker - A P2P Decentralized Poker Platform Built on Ethereum
Peer-to-peer card shuffling. Bets held in secure escrow. Cryptographically signed hand results. Poker you can trust. Payouts directly back into your digital wallet
- SECURITY OF PLAYER FUNDS
Players do not deposit money into a centralized Virtue Poker system.
Instead, players fund their personal digital wallets and enter games
with these funds.
- TAMPER PROOF GAMING
All gameplay happens using off-chain using a secure implementation of mental poker.
- INSTANT PAYOUTS
All payouts happen in less than 60 seconds and are automatically sent back to a player’s digital wallet when they leave a table.
- GUARANTEED TOURNAMENTS
Competitors spend money on expensive sponsorships on poker stars and
athletes, we feel like our players would prefer if we spent that money
on them instead, so we put our marketing resources into guaranteed
The Virtue Poker team has spent years researching the current market dynamics in the existing
industry, and our goal is to address these shortfalls in creating a new decentralized online poker
network with trust, transparency, and accountability built in. Our goal is to reinvigorate online
poker through the utilization of the Ethereum blockchain, peer-to-peer networking, user-owned
identity, and cryptographically secured cards, with the aim to create an improved playing
experience, at a lower cost to players. More importantly, using these new frameworks, our aim is to
fix the broken poker economy by both reducing costs to players via lower rake, building out
rakeback structures that encourage player retention, and through creating the most safe and secure
online poker platform that will enable players to have fun on our platform, creating a more
balanced online poker ecosystem.
* User Flow
Virtue Poker is a server-less application that will run without storing customer funds, and all
players will be involved in card shuffling. The user flow can be described as follows:
- Download Virtue Poker Client
A user will visit www.virtue.poker and download our client for either Windows, Mac or Linux. The
application is downloadable and includes a shuffler, game engine, and user interface.
Users will then be required to create a uPort identity (if they haven’t already created one). The user
will have to receive an attestation regarding country of residence and age prior to playing on
Virtue Poker when required.
- Fund a Light Wallet
The user will be brought to a page that directs them to fund the light wallet that is pre-built into
- Create a Game or Join a Game
The user will have the option to create a private game where he or she can invite other
players to join, or go to our lobby which will show all publicly available games via our Casino
The user can join either a public or private game by sending ETH or VPP (to be discussed later) to
the table address of the game they’d wish to join. The table or smart contract will sit on the
Ethereum blockchain and acts as an escrow account while gameplay is conducted. Each game on
Virtue Poker is represented by a table contract that has the custom parameters of that particular
The peers at the table will form a P2P subnet and will use a mental poker protocol that requires
each individual peer to shuffle the deck of cards.
When a tournament is completed, or when a player leaves the table for a cash game, the table
contract will auto-execute and payout each individual player when winnings are due.
How Virtue Poker Works
- Virtue Poker Components
The Virtue Poker platform will utilize several sub-components for different purposes within the
Virtue Poker Components
The Ethereum-based identity application uPort will be utilized as a registration and identity
validation mechanism to prevent underage gambling and multi-accounting. Users will be required
to sign-in via uPort each time they want to play games on Virtue.
- Ethereum Smart Contracts
Ethereum contracts are utilized for several purposes: (1) as a registry (Lobby) for all active games
on the platform (2) as a short-term escrow service for players seated at a given table (3) as a
repository for all game-specific parameters such as buy-in amount, payout percentages, and game
type, (4) reporting end game results.
- Game Client
The Game Client will initially be a desktop application that is a state-engine that runs the game
logic, shuffles and deals cards using a Mental Poker protocol, includes a light wallet, and connects
to other players at a given poker table.
The P2P messaging backbone is utilized as a communication and synchronization tool to ensure
the user interface for all players at a given table displays the identical game state.
IPFS will be used to log hand histories for all games played on the platform. Logs can be retrieved
at a later point in time for review either for compliance or for our game security team.
* Identity Management
Virtue Poker will use the self-sovereign identity application uPort to validate a player's’ identity
prior to allowing users to access the platform.17 An example of this process is illustrated below:
Illustration of Identity Validation
Step 1: A user downloads the uPort mobile app, creates a uPort identity and then scans a copy of
their proof of identity that is verified by a third-party. The attestation is then encrypted and stored
in IPFS, and the user receives an attestation within their uPort ID regarding their identity.
Step2: A user makes an account on Virtue Poker and is presented with a QR code that the user
scans with their uPort app
Step 3: A new account request is sent to a Virtue Poker Accounts contract with the associated uPort
ID which checks for an attestation from the third party that has verified the user's identity.
Step 4: If successful, that user’s uPort ID is paired with their Virtue Poker account address and is
stored in the Virtue Poker Player Registry.
* Ethereum Smart Contracts
After a player has verified their identity and created their account, the user is brought to the “lobby
or casino contract.
- Casino Contract
The Casino contract functions as the lobby. It contains a registry of all available games, as well as
recently completed games. Its functions include game creation as well as matchmaking and other
frontend, user, and game-management tasks.
- Table Contract
A Table Contract represents a single instance of a game of poker in Virtue Poker. When a decision
is made to start a game of poker with a particular set of rules and limits and a given set of players,
a new table contract is created and players join it to play. When that game is done, pots are paid,
and the players leave, then that table contract is "closed" and no longer used other than as a
During play, the table contract serves several purposes. Primarily, it is the repository for all
information regarding the rules and settings for the game being played. It also maintains a list of
the players in the game, as well as information about them needed by the other players. In
addition, it is where funds used for gameplay are escrowed, and is responsible for distributing
When a player joins a table contract, the funds necessary to cover the table buy-in are
transferred to the table contract and credited internally to the player's stakes. The player then
receives from the contract the information necessary in order to communicate with the other
player at the table and play begins. As play progresses, the contract is informed as to the state of
the game and updates its state accordingly. When the player leaves the game, the contract
transfers any funds due to the same account from which the player originally paid them.
- Player Interactions with Table Contracts
As currently architected, transactions by players are sent to table contracts in the following
instances: (1) to join a table (2) at the end of each hand (3) when a game is completed (for
tournaments) or when a player leaves a table (for cash games). Our goal is to minimize the number
of transactions sent to Ethereum to reduce our gas costs and improve gameplay speed.
The table contracts include a “chip counter” which keeps tracks of the players’ stakes at
each particular table. At the end of each hand, each player and the Justice (described in Section 4.2)
cryptographically sign the end-results, and send a transaction to the table contract which updates
each respective player’s stake accordingly. This consensus mechanism and transaction submission
by the peers at each given table functions as a “oracle,” enabling the contract to keep an updated
game state, and to know when to pay players. This process happens asynchronously as hands are
played on the platform, meaning that players can move onto the next hand while previous hand
result is validated by the blockchain.
- Multi-table Tournament Contract
For tournaments that involve play across multiple tables, the multi-table tournament contract acts
as an organizational tool that manages the distribution of players across the tables. Any aspects of
the tournament that exist at a higher level than the table itself are handled by this contract.
- Justice Management Contract
A "Justice" is a special case of the player client software which participates in the peer-to-peer
gameplay of a table, but does not receive cards or place bets. Instead the Justice is externally
incentivized to act as a "more trustworthy" peer in the table subnet in such a way that a set of
them at a table can be used to resolve certain potential disputes that might arise and to log the
In order to both distribute the workload as well as to discourage any potential for collusion
between Justices and players, the Justices are assigned randomly to tables from a pool, and rotate
through tables after a certain number of hands. The Justice Management Contract is responsible for
both keeping a registry of available Justices as well as for assigning them to the poker tables.
Justices will be discussed at greater length in Section 4.2
* Mental Poker
In 1978 cryptographers Adi Shamir, Ron Rivest, and Leonard Adleman published a paper in
response to a question that had been posed by the computer scientist Robert W. Floyd: "Is it
possible to play a fair game of 'Mental Poker'?" This paper proposes an encryption scheme and
communications protocol that allows two people at different locations to shuffle and deal virtual
"cards" in a way that allows a game to be played without the need of a trusted third-party.18 Over
the ensuing years there have been numerous other papers published on the subject, expanding
upon the ideas, offering alternative methods, and providing analysis and critique.
There have been, however, very few practical software applications employing Mental
Poker techniques. In large part, this is because the cryptography involved can require enormous
amounts computational power and communications resources, and software using them simply
runs too slow for consumer use. In addition, the inherent "peer to peer" nature of Mental Poker can
be difficult to manage and doesn't blend well with traditional server-based online game models.
The Virtue Poker team has spent the past two years examining how the use of blockchain
and distributed storage technologies, in concert with cooperative peer-to-peer networking, can
address some of these difficulties. The result is a downloadable application that can play a
6-handed game at speed and manage real player stakes using the Ethereum Blockchain.
Mental Poker ensures the decks are unreadable to any single player by encrypting and
shuffling the cards cooperatively in a way that lets each card be "opened" by one, some, or the
entire group. The protocol uses communicate encryption: cards can be encrypted or decrypted in
any order. The basic algorithm is outlined in Section 3.5.2.
- Mental Poker Algorithm, The Two Pass Shuffle
The basic algorithm is as follows: Three players, Bob, Alice and Ted are seated at a table and are
playing a game of Texas Hold’em. Bob is the dealer, and he generates a deck of 52 cards on his
machine, only he can view the cards. Using Fisher-Yates /dev/urandom he shuffles the deck of
cards, and then encrypts the deck with the same encryption key on each card, making the deck
unreadable to anyone but himself. He then passes the now encrypted deck to Alice, who does the
same thing: shuffles the deck of cards and then encrypts them. Finally, Alice passes the deck to Ted
who goes through the same process.
The deck is now in its final ordered state, 1 through 52, and this order does not change
throughout the course of the hand. Ted passes the now 3x encrypted deck of cards back to Bob,
who takes off his “shuffle lock” and now encrypts each individual card with a different encryption
key: B1, B2….B52. He passes the deck to Alice, who does the same thing: removes her “shuffle-key”
and encrypts the deck with a unique encryption key A1, A2….A52. Alice then passes the deck back
to Ted, who completes this same process.
Bob is assigned the first and second card in the deck, but he only possesses his encryption
keys that correspond to these cards. Alice and Ted therefore share their encryption keys that
correspond to the first two cards, A1 and A2, and T1 and T2 respectively, so that Bob holds all
three decryption keys for his private cards. This enables Bob to view his private cards but no one
else. This process is repeated for each player at the table, so each player can only view their own
All players call and the hand goes to the flop. The flop is denoted by cards 7, 8 and 9 in the
deck. All players must share their encryption keys that correspond to the community cards, so that
everyone can see these shared cards. This process continues until the end of the hand, where the
winning player is awarded the pot, and all players reach consensus (described in detail in Section
4.2) by signing the end result of the hand which is sent to the Ethereum blockchain to update the
game state (chip totals) for all players seated at the table. See Figures 6 through 9 that depict this
- Two Rounds of Encryption: Shuffling the Deck and Indexing the Deck
“Multi-party shuffling” only requires that one of the peers perform a "proper" random shuffle in
order to ensure that the entire deck is randomly ordered. If a player trusts that his own
shuffled the deck properly then he can have confidence that the game is fair.
Shuffling and Encrypting the Deck19
- Indexing the Deck
- Decryption and Gameplay
Player Key Sharing
This process happens “under the hood:” the look and feel of a hand on Virtue Poker is similar to the
experience players have come to expect with online platforms.
* Peer-to-Peer Messaging
- P2P Messaging for Game Client Synchronization
While the ideas behind Mental Poker make it possible for a deck to be shared and cards dealt and
held secret by players in a peer-to-peer network with no need to trust a central server, other
technologies are required in order to provide a practical, consumer-oriented poker service.
The downloadable game client software consists of separate "frontend" and "backend"
processes. The frontend displays the current game state to the local user, and accepts input when
appropriate and passes it to the backend, which then broadcasts it to the other clients in the game.
The backend contains the logic needed to apply the rules of poker to the input events that it
receives both from the frontend and from other clients. The result is that every client is actually
applying the same code to the same data as all of the others.
- Off-Chain Gameplay
A programmable blockchain technology like Ethereum makes it possible to have available a
definitive and immutable data store for things that might otherwise be handled by a single server,
like managing the players at a particular table. The ability for client software to interact with
"contracts" on the blockchain also allows for trustless, distributed management of player funds and
table stakes, and provides and immutable record of these interactions. But the blockchain cannot
simply be used as a replacement for a server for all aspects of the game partly because data and
instructions sent by a client take at best a few seconds to propagate across the chain, making it
impractical to use it to manage game events at a finer granularity than at the hand level.
Game events occurring at a higher rate, like betting, must be managed by the client
software itself, or more properly: by the software that manages the peer-to-peer "subnet"
consisting of the clients playing at a particular table. The use of digital signatures allows each
client to verify that messages received have been sent by the claimed sender, preventing forgery.
Fault tolerant consensus formation techniques are used to ensure that at each step in the process
of gameplay, every client agrees with every other client as to exactly what has happened. In
addition to catching errors and hardware failures, Byzantine faults (intentionally bad data) are also
At the end of each hand this "consensus" data - digitally signed by every client - is passed to the
blockchain for processing, and the clients themselves move on to the next hand. Disagreements
among clients, or peers at the table are resolved by Justices (described in Section 4.2).
* IPFS: Game-log Storage of Hand Histories
In order to provide a permanent record of the actual play of each hand, the signed game event
messages themselves need to be stored, as well as the state information tracked by the blockchain
when it processes the end of a hand. This turns up a second weakness in current blockchain
technology: using the chain to store significant amounts of data can be expensive, so simply
sending all of this log data to the blockchain is not practical.
Fortunately, there exist technologies (IPFS, Swarm) that are designed to provide reliable,
distributed data storage. At the end of a hand, before reporting to the blockchain, the client
software sends the hand's log data to IPFS, which provides it with a single "hash" value that can be
used to locate it at a later time. That hash is included with the state data sent to the blockchain
contract, and since each hand's log data includes the hash of the previous hand's log, it is possible
to request from the blockchain the most recent hash, and use it to chain back through the entire
logged history of the game. A distributed storage platform removes singular points of failure
present in various forms of centralized storage systems.
* Fees on Virtue Poker
The Virtue Poker team understands that rake is an important factor players take into consideration
when choosing a poker site to play online. Our team has been researching innovative rake
structures and will use our private beta to test various approaches in addition to sourcing feedback
from the poker player community. Our aim is to reduce operational expenditures and pass back
those savings to players and employ the lowest rake in online poker.
* Platform Development
The Virtue Poker team has spent over 2 years developing our application, and will need to continue
to build out our development team to build out a fully functional platform. Virtue Poker will hire
developers to improve our P2P messaging backbone, create custom interfaces, optimize our smart
contracts, and implement storage functionality. In addition, our team will integrate with ongoing
Ethereum infrastructure projects including distributed storage, identity management, and stable
Virtue Poker will compete with market incumbents with large marketing budgets and sophisticated
customer acquisition processes. We will dedicate significant marketing resources to guaranteed
tournaments and freerolls, rakeback, marketing analytics software, and other paid marketing
initiatives, including partnering with affiliates.
In addition, Virtue Poker will host a pre-launch tournament with online and live
professionals prior to launch and broadcast the tournament on the live streaming platform Twitch
to showcase the Virtue Poker Platform.
* Sponsorships and PR
Virtue Poker will sponsor popular poker forums, websites, blogs, and events. In addition, our team
will pursue an aggressive PR strategy to communicate our platform’s value propositions to a broad
Our team has already begun consulting with well respected law firms including DLA Piper, ISOLAS
and Ifrah Law, and with regulators around the globe. Our team plans to continue consulting with
these resources as we navigate applicable legal and regulatory frameworks. Our team plans to
pursue a gaming license prior to our launch to ensure our platform adheres to compliance
standards and our players are sufficiently protected.
Virtue Poker was conceived in May 2015, and our prototype has been developed over the course of
the last two years, see our history of GitHub commits:
Our application currently is 13,000+ lines of code, and has been tested weekly since its inception.
Internally our team has been playing games of poker using a Mental Poker implementation that
works on the Ethereum testnets.
The first version of Virtue Poker is desktop Python client that creates a custom smart contract for
each table instance. Our team has successfully implemented a Mental Poker protocol for card
shuffling and a game engine which is a state machine that connects with other peers via a P2P
messaging protocol and hooks into Ethereum when peers create and join a particular table.
Currently our application can play 6-handed and complete approximately 70-80 hands per hour.
* Further Development
The Virtue Poker team has hired out our core team and will use the proceeds from our sale to
continue to build out our team and the Virtue Poker platform. One of our goals is to redesign the
Virtue Poker desktop app as an electron application. In order for our platform to be successful, the
Virtue Poker application must undergo significant testing to ensure the games are sufficiently fair,
the registration and identity verification method prevents low level multi-accounting and underage
gambling, and our data storage mechanism is able to track data points necessary for compliance
and to detect cheating.
* Q4 201722
Improve P2P Messaging Backbone
The application uses runtime-swappable plugin implementations for different transports, and is
currently using a very basic HTTP-server-based message exploder. For deployment, Virtue Poker
will implement a more industrial strength backbone.
The presence of one or more Justices in a game allows for permanent offline (IPFS) archival of
peer-level gameplay - which is important when trying to detect collusion or bot play, or simply to
22 Timelines and dates are subject to change
allow after-the-fact proof that things went properly. As part of the consensus mechanism a Justice
prevents 2 players with hacked clients from cheating in a 3 player game: something other
51%-vulnerable consensus mechanisms cannot do.
Commercial Quality Front-End
Virtue Poker will re-skin our current application and build out a user interface for our lobby.
* Q1 2018
uPort Integration for Identity Management
A user, when creating an Ethereum account for poker play, will be prompted to download the uPort
mobile application and create an identity. The user will then associate his/her Virtue Poker account
with their uPort ID. When joining a game, the user will use uPort to indicate that he is physically
present, and we will use third-party attestations as our mechanism to combat low-level
multi-accounting and account sharing.
Virtue Poker will use Justice nodes to collect and store gameplay at the hand level. We intend to
store hand archive using IPFS, and to add a reference to the data to the table contract.
Build out Multi-Table Tournament Functionality
The “Multi-Table Tournament Contract” which will manage which tables are part of the tournament
and what players are assigned to those tables. It will also manage tournament progress and
resolution: who wins, and what. During gameplay, the 'table' is still the P2P subnet unit, and will
function much as it currently does - but it will communicate with the MTT contract.
* Q2 2018
Virtue Poker Private Alpha
Virtue Poker will conduct private user testing for pre-registered participants to debug our platform
and to source feedback to improve upon our UI/UX.
Virtue Poker will organize a pre-launch event composed of well-known online and live
professionals and live stream the event on Twitch
* Q2/3 2018
Based upon ongoing user testing, Virtue Poker will implement a tokenized rakeback mechanism
Virtue Poker Limited Release (Open Beta)
Virtue Poker will launch our open beta to users around the world who can create and play in single
table Sit & Go’s and Cash Games.
* Q4 2018
Virtue Poker Public Launch Tournament
Virtue Poker will publicly launch via a large guaranteed tournament enabling users around the
world to play on our platform.
Third-Party Operator Integration
In order to scale, Virtue Poker will enable third-party operators and licensees around the globe to
create a custom skin on our platform and to create games on top of our underlying infrastructure.
Lead Platform Developer: For 30 years Jim has worked on software ranging from the
Hubble Space Telescope ground system to the Framingham Heart Study’s Research Data
Application to Linux drivers for an aerial image acquisition system to installing
appropriate-technology email systems for developing nations in the South Pacific. Most of his
career, however, has been spent working on computer games for companies like MicroProse,
Looking Glass, and Electronic Arts - among others - specializing in physical simulation and
Head of Business Development and Marketing: Ryan is an experienced business
development and marketing professional with a background in helping businesses and products
increase sales. Before working on Virtue Poker, he worked as the Head of Customer Acquisition for
a New York based startup called TodayTix, a Broadway ticketing mobile application, where he
oversaw a growth in its user-base from 150,000 to over 700,000. He also worked for Time Out New
York in their national advertising sales department, and holds a bachelor's degree from the
University of Pennsylvania. He discovered Ethereum in August 2015, and instantly became
captivated about the global potential of blockchain technology. He has worked with ConsenSys on
Virtue Poker for the past two years.
Javier Franco Algarrada,
Platform Developer: Javier is a senior software engineer with 10+ years of
experience. He enjoys working on full stack applications involving multiple technologies and
environments. He has been working for more than 5 years in gambling across different products
like lottery, virtual sports, casino games and sportsbook. Always interested in cutting-edge
technologies, he decided to move into blockchain projects last year. He holds a bachelor degree in
computer science and a master’s degree in web engineering .
Game Security Consultant: Peter has been heavily involved in the online gaming
industry for the last 12 years. Working professionally in it for over the last 9 years, specifically
within online poker, Peter has gained invaluable experience in game security, financial fraud and
back end operations. After leaving a top online poker site in 2013, Peter has consulted on projects
in the online poker, casino and DFS industries. Peter came on board as a consultant for Virtue
Poker to give direction on game security, operations and web admin design, as well pass on
knowledge gained from playing over 1,000,000 hands of online poker. Peter currently oversees
game security and works with the development team to further enhance the technical resources
used by the operations team on a daily basis.
Design: Catalin has been a digital designer since 2010. Now he’s working together
with ConsenSys, creating fresh and engaging DApps. He believes that good design gives you a
good spirit. And does his best trying to create a beautiful experience for the users so that they can
enjoy it like a walk in the park.
UI Game Design: Passionate about the arts, Marlon graduated with a degree in
Illustration. Book covers, video games and caricatures was his interest but now designing for the
web has been the name of the game.
Joe Lubin’s career has involved various posts in the fields of technology and finance and
in their intersection. Subsequent to graduating cum laude with a degree in Electrical Engineering
and Computer Science from Princeton, he worked as research staff in the Robotics Lab at Princeton
and then at Vision Applications, Inc. Software engineering, finance and cryptography were central
during employment with Goldman Sachs, eMagine’s consulting work on the IdenTrust project, and
the founding and operation of a set of hedge funds run with a partner. Joseph co-founded the
Ethereum Project, and has been working on Ethereum and more recently ConsenSys since January
James Slazas has over 15 years of experience in the financial industry. At Lehman
Brothers, James managed a proprietary arbitrage book of derivatives and created a global risk
management group for the HNW exposure of the London, Swiss and Hong Kong banks. Later James
co-founded a hedge fund managing a portfolio of life settlements, uniquely acquiring assets as
contributions as well as pricing assets from both the VBT mortality tables, as well as, underwriting
internally to determine longevity risk. Utilizing the health care components of the fund, James
successfully negotiated a preferred status from the Centers for Medicare and Medicaid’s Regional
Extension Centers of AZ, CA, FL, NJ, and NY to rollout Med A-Z/Healthcare Inside’s nationwide
electronic health record (EHR) and billing services as well as a joint binding agreement with HCL
America, a ‘$6 billion publicly traded company to provide patient support analytics and medical
billing services to laboratories, ACO’s, private practices, and hospitals.
Pat is Associate General Counsel for ConsenSys and a full-stack software
engineer. Before joining ConsenSys, Pat practiced law for 7 years at Sullivan & Cromwell LLP and
co-founded a health-tech startup. Pat is particularly interested in leveraging his legal, software and
entrepreneurial experience in conjunction with blockchain technology to disrupt industries,
markets and networks.
Andrew is the Head of Global Business Development for ConsenSys with capital
markets, technology, and entrepreneurial experience. Previously, Andrew worked for UBS
investment bank in equities analysis. Later, he was responsible for creation and distribution of life
settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle
management company where he learned about Bitcoin and eventually Ethereum.
Andrew drives strategic technological partnerships, business development, and communications for
ConsenSys and Co-founded ConsenSys Enterprise, to create Ethereum blockchain solutions for
Fortune 500 clientele.
Ifrah Law PLLC,
US Gaming Matters: Ifrah Law has represented iGaming clients since the inception
of the industry, and now represents many of the largest iGaming companies and industry
associations around the world. They have been at the center of most of the important prosecutions
and lawsuits in the iGaming industry: our clients include the online poker sites Full Tilt Poker and
PokerStars, for whom Jeff Ifrah negotiated a historic agreement in 2011 with the Department of
Justice which paved the way for iGaming in the United States. Ifrah Law was also instrumental in
the creation of the legislative and regulatory frameworks in the three states which currently permit
online gaming: Delaware, New Jersey and Nevada.
Gibraltar Law: ISOLAS is a full service Gibraltar law firm and advises on the full
range of legal solutions Gibraltar has to offer. An award winning law firm, ranked by the world’s
leading directories as a leading firm in Gibraltar, their focus remains solidly on the client and
delivering solutions. Trusted since 1892, ISOLAS LLP is this year celebrating 125 years in Gibraltar,
the longest established law firm in Gibraltar.