BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Lough Ree Yacht Club - ECPv4.9.14//NONSGML v1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:Lough Ree Yacht Club
X-ORIGINAL-URL:https://www.lryc.ie
X-WR-CALDESC:Events for Lough Ree Yacht Club
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:STANDARD
TZOFFSETFROM:+0000
TZOFFSETTO:+0000
TZNAME:UTC
DTSTART:20260101T000000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;VALUE=DATE:20260801
DTEND;VALUE=DATE:20260808
DTSTAMP:20260503T092804
CREATED:20180108T131112Z
LAST-MODIFIED:20260114T154257Z
UID:1138-1785542400-1786147199@www.lryc.ie
SUMMARY:Annual Regatta
DESCRIPTION:\n//numericalTotals\nvar total;\n//Summary Strings\nvar summaryMsg = [];\nvar discountMsg = [];\nvar accomodationSummary = [];\nvar isDiscountActive=0;\n//Constants\nvar boatCount=1;\nvar accomodationCount=1;\nvar boatPostCount=0;\nvar sundayMealFee = 35;\nvar wednesdayMealFee = 30;\nvar processing = false;\nvar fillToCartURL='https://www.lryc.ie/cart/?fill_cart=';\nfunction calculateTotal() {\n   clearCart();\n}\nfunction clearCart() {\n   this.statusA=[];\n   this.summaryMsg = [];\n   var discountMsg = [];\n   this.boatPostCount=0;\n   this.total = 0;\n   areThereValidationErrors();\n   if (this.errors.length > 0) {\n      printErrors();\n      return;\n   } else {\n      printStatus("Clearing Cart")\n      disableButton();\n      var xhr = new XMLHttpRequest()\n      xhr.open("GET"\, 'https://www.lryc.ie/?clear-cart'\, true);\n      xhr.setRequestHeader("Content-Type"\, "application/x-www-form-urlencoded; charset=UTF-8");\n      xhr.onload = function () {\n         continuePurchase();\n      };\n      xhr.send();\n   }\n}\nfunction continuePurchase(){\n   var allBoats = document.getElementsByName("field4");\n   getTotalBoatEntryFees(0);\n}\nfunction finishPurchase(){\n   if (isDiscountActive > 0){\n       this.fillToCartURL='https://www.lryc.ie/cart?apply_coupon='+isDiscountActive\n      var xhr = new XMLHttpRequest()\n      xhr.open("GET"\, this.fillToCartURL\, true);\n      xhr.setRequestHeader("Content-Type"\, "application/x-www-form-urlencoded; charset=UTF-8");\n      xhr.onload = function () {\n         getTotalMealFees(0);\n      };\n      xhr.send();\n   }\n   else {\n      getTotalMealFees(0);\n   }\n}\nfunction getTotalMealFees() {\n   this.fillToCartURL='https://www.lryc.ie/cart/?fill_cart=';\n   var sunday = document.getElementsByName("sun");\n   var sundayInt = parseInt(sunday[0].value);\n   if (sundayInt>0) {\n      if(fillToCartURL.slice(-1) !== '=') {\n          this.fillToCartURL+='\,'+sundayInt+'x14162';\n      } else {\n         this.fillToCartURL+=sundayInt+'x14162';\n      }\n      wednesdayMeals();\n   } else {\n       wednesdayMeals();\n   }\n}\nfunction wednesdayMeals() {\n   var wednesday= document.getElementsByName("wed");\n   var wednesdayInt = parseInt(wednesday[0].value);\n   if (wednesdayInt >0) {\n      if(fillToCartURL.slice(-1) !== '=') {\n          this.fillToCartURL+='\,'+wednesdayInt+'x1434';\n      } else {\n         this.fillToCartURL+=wednesdayInt+'x1434';\n      }\n      getAccomadationEntryFees(0);\n  } else {\n       getAccomadationEntryFees(0);\n  }\n}\nfunction getTotalOtherFees(){\n    var electricity = document.getElementsByName("electricity");\n    var amountOfElectricity=0;\n    for (i = 0; i < electricity.length; i++) { \n       if  (electricity[i].checked) {\n           amountOfElectricity += 1;\n       }\n    }\n    if (amountOfElectricity > 0){\n       if(fillToCartURL.slice(-1) !== '=') {\n          this.fillToCartURL+='\,'+amountOfElectricity+'x1492';\n       } else {\n          this.fillToCartURL+=amountOfElectricity+'x1492';\n       }\n    }\n    var soda= document.getElementsByName("sodaFull");\n    if  (soda[0].value > 0) {\n          if(fillToCartURL.slice(-1) !== '=') {\n             this.fillToCartURL+='\,'+soda[0].value+'x1493';\n          } else {\n             this.fillToCartURL+=soda[0].value+'x1493';\n          }\n    }\n    var associate= document.getElementsByName("sodaTen");\n    if  (associate[0].value > 0) {\n          if(fillToCartURL.slice(-1) !== '=') {\n             this.fillToCartURL+='\,'+associate[0].value+'x1495';\n          } else {\n             this.fillToCartURL+=associate[0].value+'x1495';\n          }\n    }\n    fillCheckout();\n}\nfunction createSummary(){\n   this.total = 0;\n    this.isDiscountActive=0;\n    this.summaryMsg = [];\n    this.discountMsg = [];\n    var allBoats = document.getElementsByName("field4");\n    var totalBoats=0;\n    var newTotalBoats=0\n    var clinker = ["1234567899998"];\n    var boatHire = false;\n    for (i = 0; i < allBoats.length; i++) { \n        boatsIndex = allBoats[i].selectedIndex; \n        var BoatNo = document.getElementsByName("boatNo")[i].value;\n        var priceAndProductNo = allBoats[i].value.split('\,');\n        if (parseInt(priceAndProductNo[0]) > 0) {\n            this.summaryMsg.push("1 x " + allBoats[i][boatsIndex].innerText);\n            if(priceAndProductNo[1] != 11793 && priceAndProductNo[1]!= 11795 && priceAndProductNo[1]!= 11801 && priceAndProductNo[1]!= 11802){\n               totalBoats+=parseInt(priceAndProductNo[0]);\n               newTotalBoats+=parseInt(priceAndProductNo[0]);\n            } else {\n              boatHire=true;\n              newTotalBoats+=parseInt(priceAndProductNo[0]);\n              if (priceAndProductNo[1] === 11793){\n                 this.summaryMsg.push("Please Note a deposit of 100 euro is required at registration for a Pico ");\n              } else {\n                 this.summaryMsg.push("Please Note a deposit of 250 euro is required at registration for a Feva/Laser/420 ");\n              }\n            }\n        }\n    } \n    if (totalBoats > 0 || (totalBoats===0 && boatHire===true)) {\n       var today = new Date();	 	 \n       var dd = today.getDate();	 	 \n       var mm = today.getMonth()+1; //January is 0!	\n       if (mm === 7 && dd < 26) {\n          this.discountMsg.push("Early Entry Discount ="+ (30));	 	 \n          this.total-=30;	 	 \n          totalBoats-=30;\n          this.isDiscountActive+=30	 	 \n       } else if (mm < 7) {	 	 \n           this.discountMsg.push("Early Entry Discount ="+ (30));	 	 \n           this.total-=30;	 	 \n           totalBoats-=30;\n           this.isDiscountActive+=30	 	 \n       }	 	 \n    }\n    \n    if (totalBoats > 260) {\n        this.discountMsg.push("");\n        this.discountMsg.push("Note a Family sailing discount is being applied automatically. A maximum 260 fee for sailing boat entries (Excluding Pico & Feva hire)\, this applies to members of the same family from LRYC or LDYC\, if at registration the 2 or more boats entered are unrelated to each other the discount shall be removed.");\n        this.discountMsg.push("");\n        this.discountMsg.push("Family Discount ="+ (totalBoats-260));\n        this.discountMsg.push("");\n        this.total=260;\n        this.isDiscountActive+=(totalBoats-260);\n    } else {\n        this.total=totalBoats;\n    }\n    if (boatHire===true){\n       this.total+=200;\n    }\n    var accomadation= document.getElementsByName("accomadationSelect");\n    for (i = 0; i < accomadation.length; i++) { \n        var priceAndProductNo = accomadation[i].value.split('\,');\n        if (parseInt(priceAndProductNo[0]) > 0) {\n            this.total += parseInt(priceAndProductNo[0]);\n            this.summaryMsg.push("1 x " + accomadation[i][accomadation[i].selectedIndex].innerText);\n        }\n    }\n    var electricity = document.getElementsByName("electricity");\n    var amountOfElectricity=0;\n    for (i = 0; i < electricity.length; i++) { \n       if  (electricity[i].checked) {\n           amountOfElectricity += 1;\n       }\n    }\n    var sunday = document.getElementsByName("sun");\n    var sundayInt = parseInt(sunday[0].value);\n    var wednesday= document.getElementsByName("wed");\n    var wednesdayInt = parseInt(wednesday[0].value);\n    if (sundayInt>0){\n       this.summaryMsg.push(sundayInt+" x Sunday Supper WAIT LIST");\n       this.total += (sundayInt*0);\n    }\n    if (wednesdayInt>0){\n       this.summaryMsg.push(wednesdayInt+" x Wednesday Supper Wait List");\n       this.total += (wednesdayInt*0);\n    }\n    if(amountOfElectricity>0){\n       this.summaryMsg.push(amountOfElectricity+" x Electricity =€"+(amountOfElectricity*25));\n       this.total += (amountOfElectricity*20);\n    }\n    var soda = document.getElementsByName("sodaFull");\n    if  (soda[0].value > 0) {\n        this.summaryMsg.push(soda[0].value+" x Soda Membership €52");\n        this.total += (soda[0].value*52);\n    }\n    var associate = document.getElementsByName("sodaTen");\n    if  (associate[0].value > 0) {\n        this.summaryMsg.push(associate[0].value+" x Soda Associate Membership €26");\n        this.total += (associate[0].value*26);\n    }\n    var summary = document.getElementById("entrySummary");\n    summary.innerHTML = "";\n    this.summaryMsg.push("");\n    for (i = 0; i < this.summaryMsg.length; i++) {\n        summary.innerHTML += (this.summaryMsg[i] + "");\n    }\n    for (i = 0; i < this.discountMsg.length; i++) {\n        summary.innerHTML += (this.discountMsg[i] + "");\n    }\n    document.getElementById("Total").innerHTML = "€ "+ this.total;\n    document.getElementById("regattaFormTotal").style.display= "block";\n}\nfunction areThereValidationErrors(){\n   this.errors = [];\n    var allHelms = document.getElementsByName("helm");\n    var allBoatNo = document.getElementsByName("boatNo");\n    var allHelms = document.getElementsByName("helm");\n    var allFleets = document.getElementsByName("fleet");\n    var allBoats = document.getElementsByName("field4");\n    var declaration = document.getElementById("declaration");\n    for (i = 0; i < allBoats.length; i++) { \n        boatsIndex = allBoats[i].selectedIndex; \n        var priceAndProductNo = allBoats[i].value.split('\,');\n        if (parseInt(priceAndProductNo[0]) > 0) {\n           if (allHelms[i].value.length < 3) {\n              this.errors.push("You forgot to enter a helm name for boat number "+(i+1))\n           }\n           if (allBoatNo[i].value.length < 1) {\n              this.errors.push("You forgot to enter a sail number for boat number "+(i+1))\n           }\n           if (parseInt(priceAndProductNo[1]) === 1438 || parseInt(priceAndProductNo[1]) === 1439){\n              if (allFleets[i].value === "") {\n                 this.errors.push("Boat number "+(i+1)+" is an Optimist\, please enter a fleet")\n              }    \n           }\n        }  \n    }   \n   var priceAndProductNo = allBoats[0].value.split('\,');\n   if (!declaration.checked & parseInt(priceAndProductNo[0]) > 0) {\n      this.errors.push("Please tick the DECLARATION BOX")\n   }\n   var validation = document.getElementById("validation");\n   validation.innerHTML = "";\n}\nfunction printErrors(){\n    var validation = document.getElementById("validation");\n    for (i = 0; i < errors.length; i++) {\n        validation.innerHTML += (errors[i] + "");\n    }\n}\nfunction disableButton(){\n   var goToCheckout = document.getElementById("Next");\n   goToCheckout.disabled = true;\n   goToCheckout.value='Thank you please wait a few moments while we build your entry';\n   goToCheckout.style.background = "#909090"\n}\nfunction fillCheckout() {\n   printStatus("Going to Cart with anything else");\n   window.location.href = fillToCartURL;\n}\nfunction addABoat(){\n  var nextBoatDiv = document.getElementById("boat" + (this.boatCount +1));\n  nextBoatDiv.innerHTML="Boat number "+(this.boatCount +1)+" " +\n""+\n"" +\n  "Please select another boat to enter" +\n  "Shannon One Design Week  €180" +\n  "Shannon One Design Weekend €130" +\n  "Keelboat & Sports ODs Week "+ "€160" +\n  "Keelboat & Sports ODs Weekend "+      \n  " €130" +\n  "Optimist Week €120" +\n  "Optimist Weekend €95" +\n  "ILCA (Lasers) Evening Races Week €60" +\n  "ILCA (Lasers) Evening Races Weekend only €40" +\n  "Mirror Week €120" +\n  "Mirror Weekend €95" +\n  "420 "+\n  "Week €120" +\n  "420"+\n  " Weekend only €95" +\n  "Hire Laser and Entry Week €200" +\n  "Laser Week €120" +\n  "Laser Weekend €95" +\n  "Hire Feva and Entry Week €200" +\n  "Feva Week €120" +\n  "Feva Weekend €95" +\n  "Hire Pico and Entry Week €200" +\n  "Pico Week €120" +\n  "Pico Weekend €95" +\n  ""+\n   "" +\n  "" +\n  "" +\n   "" +\n  "" +\n  "" +\n  "Preferred Fleet (For Optimists only)" +\n  "Gold" +\n  "Silver" +\n  "Bronze" +\n  "";\n   this.boatCount += 1;\n   var allBoats = document.getElementsByName("field4");\n   allBoats[(this.boatCount-1)].click();\n   if (this.boatCount === 2) {\n      var nextBoatButton = document.getElementById("removeBoatButton");\n      nextBoatButton.innerHTML = ""\n   }\n   if (this.boatCount === 4) {\n     var nextBoatButton = document.getElementById("addBoatsButton");\n     nextBoatButton.innerHTML = "Maximum boats per entry reached ";\n   }\n}\nfunction removeABoat(){\n   var nextBoatButton = document.getElementById("boat"+this.boatCount);\n   nextBoatButton.innerHTML = "";\n   this.boatCount-=1;\n   if (this.boatCount == 3) {\n      var nextBoatButton = document.getElementById("addBoatsButton");\n      nextBoatButton.innerHTML = "";\n   }\n   if (this.boatCount == 1) {\n      var nextBoatButton = document.getElementById("removeBoatButton");\n      nextBoatButton.innerHTML = "";\n   }\n   var nextBoatButton = document.getElementById("addAccomadationButton");\n   nextBoatButton.innerHTML = "" +\n"";\n   this.accomodationCount=1;\n   this.createSummary();\n}\nfunction addAccomodation(){\n  var nextBoatDiv = document.getElementById("accomadation" + (this.accomodationCount+1));\n  nextBoatDiv.innerHTML="Accomodation number "+(this.accomodationCount+1)+" " +\n""+\n""+\n"" +\n"Please select option if applicable" +\n"Barge €100" +\n"Cruiser €100" +\n"Mobile Home €115" +\n"Caravan €85" +\n"Trailer Tent €65" +\n"Tent Week €65" +\n"Tent Weekend €55" +\n"" +\n"" +\n"" +\n"" +\n"" +\n"" +\n"" +\n"" +\n"If you require electricity (€25) please "+\n"tick the box" +\n"" +\n"" +\n"";\n   this.accomodationCount+= 1;\n   if (this.accomodationCount>= 2) {\n     var nextBoatButton = document.getElementById("addAccomadationButton");\n     nextBoatButton.innerHTML = "";\n   }\n}\nfunction removeAccomodation(){\n   var nextBoatButton = document.getElementById("accomadation2");\n   nextBoatButton.innerHTML = "";\n   var nextBoatButton = document.getElementById("addAccomadationButton");\n   nextBoatButton.innerHTML = "" +\n"";\n   this.accomodationCount=1;\n}\nfunction disableButton(){\n   var goToCheckout = document.getElementById("Next");\n   goToCheckout.disabled = true;\n   goToCheckout.value="Thank you please wait a few moments while we build your entry";\n   goToCheckout.style.background = "#909090"\n}\nfunction getAccomadationEntryFees(){\n       var allAccomodation = document.getElementsByName("accomadationSelect");\n       var accomadation = [];\n       for (i = 0; i < allAccomodation.length; i++) { \n          var priceAndProductNo = allAccomodation[i].value.split('\,');\n          if (parseInt(priceAndProductNo[0]) > 0) {\n              accomadation.push(parseInt(priceAndProductNo[1]));\n          }\n       }\n       if (accomadation.length > 1){\n          if (accomadation[0] == accomadation[1]) {\n             if(fillToCartURL.slice(-1) !== '=') {\n                this.fillToCartURL+='\,2x'+accomadation[0];\n             } else {\n                this.fillToCartURL+='2x'+accomadation[0];\n             }\n          } else {\n             if(fillToCartURL.slice(-1) !== '=') {\n                this.fillToCartURL+='\,1x'+accomadation[0]+'\,1x'+accomadation[1];\n             } else {\n     this.fillToCartURL+='1x'+accomadation[0]+'\,1x'+accomadation[1];\n             }\n          }\n       } else {\n          if(fillToCartURL.slice(-1) !== '=') {\n             this.fillToCartURL+='\,1x'+accomadation[0];\n          } else {\n             this.fillToCartURL+='1x'+accomadation[0];\n          }\n       }\n       getTotalOtherFees();\n}\nfunction getTotalBoatEntryFees(boatNumber){\n       var allHelms = document.getElementsByName("helm");\n       var allBoatNo = document.getElementsByName("boatNo");\n       var allNames = document.getElementsByName("boatName");\n       var allFleets = document.getElementsByName("fleet");\n       var allBoats = document.getElementsByName("field4");\n       boatsIndex = allBoats[boatNumber].selectedIndex;\n       var priceAndProductNo = allBoats[boatNumber].value.split('\,');\n       if (parseInt(priceAndProductNo[0]) > 0) {\n           printStatus("Adding "+priceAndProductNo[2]+" Entry")\n           var xhr = new XMLHttpRequest();\n           xhr.open("POST"\, 'https://www.lryc.ie/?add-to-cart'\, true);\n           xhr.setRequestHeader("Content-Type"\, "application/x-www-form-urlencoded; charset=UTF-8");\n           xhr.onload = function () {\n              boatNumber++;\n              if(boatNumber==allBoats.length){\n                 getAdditionalInfo();\n              } else{\n                 getTotalBoatEntryFees(boatNumber);\n              }\n           };\n           var additionalInfo='';\n           if (allFleets[boatNumber].value !== "") {\n              additionalInfo += ' Fleet :' + allFleets[boatNumber].value;\n           }\n           if (allNames[boatNumber].value !== "") {\n              additionalInfo += ' Boat Name:' + allNames[boatNumber].value;\n           }\n           var productId = priceAndProductNo[1];\n xhr.send('boatClass='+priceAndProductNo[2]+'&boatNumber='+allBoatNo[boatNumber].value+'&helm='+allHelms[boatNumber].value+'&AdditionalInfo='+additionalInfo+'&quantity=1&add-to-cart='+productId);\n       } else{\n            getAdditionalInfo();\n       }\n}\nfunction getAdditionalInfo(boatNumber){\n       var additional = document.getElementsByName("paragraph_text");\n       var berthingInfo = document.getElementsByName("paragraph_textBerth");\n       var soda = document.getElementsByName("sodaDesc");\n       var xhr = new XMLHttpRequest();\n       xhr.open("POST"\, 'https://www.lryc.ie/?add-to-cart'\, true);\n       xhr.setRequestHeader("Content-Type"\, "application/x-www-form-urlencoded; charset=UTF-8");\n       xhr.onload = function () {\n           finishPurchase();\n       };\n       var additionalInfo =  additional[0].value;\n       if (soda[0].value != ""){\n          additionalInfo+= ' Soda Membership is for: ' +soda[0].value;\n       }\n       if (berthingInfo[0].value != ""){\n          additionalInfo+= ' Berthing Info: ' +berthingInfo[0].value;\n       }\n       xhr.send('AdditionalInfo='+additionalInfo+'&quantity=1&add-to-cart='+2150);\n}\nfunction printStatus(newMsg){\n    this.statusA.push(newMsg)\n    var status= document.getElementById("status");\n    status.innerHTML="";\n    for (i = 0; i < this.statusA.length; i++) {\n        status.innerHTML += (this.statusA[i] + "");\n    }\n}\n\n\n\n\n\n\n\n1 Declaration & Documents\nLRYC ANNUAL REGATTA NOTICE OF RACE & PROGRAMME \n\n\nRules of the Regatta\n1.1 The regatta will be governed by the rules as defined by The Racing Rules of Sailing.\n1.2 All relevant class rules will apply.\n1.3 These Rules are contingent upon I.S. and L.R.Y.C. Rules and Guidelines in\nplace at the time of the regatta.\n\n\n\n\n\nI have read and am aware of the Rules of the regatta as above. Please accept my entry and if accepted I will fill in the declaration form(s) and where applicable class declaration form(s) and present it/them for approval at registration.\n\nLRYC Annual Regatta_Amendment to Youth\, ILCA & Optimist Schedule\nLRYC ANNUAL REGATTA DECLARATION FORM\nLRYC ANNUAL SODA DECLARATION FORM\nSOD 2025 Shore Plan\n\n\n \n\n\n2 Boat(s) to Enter\nAn early bird discount of €30 up to the 25th of July 2025 will apply. There is also a family sailing maximum entry fee of €260 (Excluding discounts\, Pico & Feva hire).\nPlease select class if applicableShannon One Design Week €180Shannon One Design Weekend only €130Keelboat & Sports ODs Week €160Keelboat & Sports ODs Weekend only €130Optimist Week €120Optimist Weekend only €95\nILCA (Lasers) Evening Races Week €60\nILCA (Lasers) Evening Races Weekend only €40\nMirror Week €120\nMirror Weekend only €95\n420 Week €120\n420 Weekend only €95\nHire Laser and Entry Week €200\nLaser Week €120\nLaser Weekend only €95\nHire Feva and Entry Week €200\nFeva Week €120\nFeva Weekend €95\nHire Pico and Entry Week €200\nPico Week €120\nPico Weekend €95\n\n\n\nPreferred Fleet (For Optimists only)GoldSilverBronze\n\n\n\n\n\n\n\n\n\n3Berthing & Camping\nPlease note berthing reservations are now closed\, if you would like to be added to a wait list please enter your details in the " Additional Requests" section below\nPlease select option if applicableMobile Home €115Caravan €100Trailer Tent €65Tent Week €65Tent Weekend €55\n \n\n\n\n\n\nIf you require electricity (€25) please tick the box\n \n\n\n \n\n\nIf you have entered a cruiser or barge could you please enter the dimensions here to help the harbour master with the berthing plan\, thank you\n \n\n\n\n4Meals\nSunday Supper and Wednesday Supper are now both sold out and the waiting lists for both are closed\n\n\n\nNumber of Sunday Meals Wait List\n1\n2\n3\n4\n5\n6\n\n\nWednesday Supper is now sold out\, if you would like to be added to the wait list\, please select here\nWednesday Supper €0 WAIT LIST\n\n\n\nNumber of meals\n1\n2\n3\n4\n\n\n\n\n5 Soda Membership\nPlease note\, soda memberships are slightly cheaper to be paid for directly through the SODA website\, we are adding the associated stripe transaction fee here.\n\nNumber of Full SODA Memberships €52123\n\n\nNumber of Associate SODA Memberships €26123\n\n\n\n\n6 Additional Requests\n\nIf you have any additional requests\, please enter here and we will endeavour\, at the regatta committee's absolute discretion\, to fulfill the request if practical/possible. \n \n\n\n\n7 Summary\nPlease check that all items needed have been selected correctly. For more information contact Alan Algeo at lryc.annual.regatta@gmail.com or 0879960057\n\nTotal\n€ 0\n\n\n \n\n
URL:https://www.lryc.ie/event/annual-regatta/
CATEGORIES:Cruisers,Shannons
ATTACH;FMTTYPE=image/jpeg:https://www.lryc.ie/wp-content/uploads/2017/08/prizegiving-2017_065fb.jpg
END:VEVENT
END:VCALENDAR