a:4:{i:0;s:22100:"					<div class="h1"><h1>3 BHK Flat for Sale In Garauli Kalan, Gurgaon</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.lodhirealestateandbuilders.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.lodhirealestateandbuilders.com/find-property.htm" title="Find Property">Find Property</a>  			
											
					
					<b class="ffv p2px">&rsaquo;</b>3 BHK Flat for Sale In Garauli Kalan, Gurgaon</p> 
					<br />
					
											<p class="aj">Taksila heights first ready to move in society in sector 37 Gurgaon. Taksila heights very closely connected to all part of Delhi ncr. Taksila heights well connected to dwarka expressway,Gurgaon central,Manesar,Near to airport.Sector 9 and sector 10 are very close to taksila heights with all the major facilities like hospital,Schools and multipurpose market.Taksila heights has all the facilities like club,Gym,Multipurpose hall,Cards room,Yoga room,24 hr security and power back. Taksila heights reasonable place for the people looking for reasonable rent and centrally connected to all the place....</p>
						<br />
											<div class="headVr p10px">
					<p class="xxlarge b mb10px">Property Details</p>
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="vat data p10px">
					<table class="w100">
											<tr>
						<td class="vat p2px5px w175px"><b>Property ID</b>:</td>
						<td class="vat p2px5px">REI678806</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
												<tr>
						<td class="vat p2px5px"><b>Property For </b>:</td>
						<td class="vat p2px5px">Sale</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
												<script type="text/javascript">
						area_conversion=function(b,f,e){var c=createAreaArr();if(e==1){if(b<20&&b!=18){var a=f/c[b];return a}else{return 0}}else{if(e==2){if(b<20&&b!=18){var d=f*c[b];return d}else{return 0}}}};
						
						function createAreaArr(){
							var a={
								1:1,
								2:0.1111111111111,
								3:0.093,
								4:0.00041666667,
								5:0.013890889,
								6:0.000091810503,
								7:0.002222222222222223,
								8:0.0036724201,
								9:0.0009182736455464,
								10:0.00092936802973,
								11:0.0000028696051,
								12:0.00002295663,
								13:0.000057392103,
								14:0.0013888889,
								15:0.0000092904166,
								16:0.003673095,
								17:0.0000092605969,
								19:0.002295684
							};
							return a;
						}
						
						function updateArea(a,c,d,h,b,w,z){
							var g=createAreaArr();
							 
							var bu = {
						    'Sq.ft.':'1',
						    'Sq. Yards':'2',
						    'Sq. Meter':'3',
						    'Guntha':'9',
						    'Ares':'10',
						    'Acre':'12',
						    'Bigha':'13',
						    'Hectares':'15',
						    'Marla':'16',
						    'Cent':'19',
						    };
							if(w=='Sq. Feet'){
								var e=d*(parseFloat(g[c]));
							}
							else{
								var e=parseFloat(g[c])*(d/ parseFloat(g[bu[w]]));
							} 
							
							if(b=="Y"){
								jQuery("#"+h+"_span").html(e.toFixed(2));
							}else{
								if(b=="N"){
									jQuery("#"+h).html(jQuery("#"+h).html+e.toFixed(2));
									console.log("#"+h);
								}
							}
							jQuery("#"+h+"Label").html(" "+a);
							jQuery("#"+z).html(a+" &#9660;")
						}
						
						</script>						
												<tr>
						<td class="vat p2px5px"><b>Built Up Area</b>: </td>
						
						<td class="vat p2px5px">
						<script type="text/javascript">
						function convert(basetext,baseindex,baseunit){
						     if(1537 > 0 )  updateArea(basetext,baseindex,1537,'builtupArea','Y',baseunit,'DrpDownTab');   }
						</script>  
						<span id="builtupArea_span">1537</span>
						<span class="pr">
						<a onClick="jQuery('#builtUp').show();event.stopPropagation();" class="headVr pl5px pr5px small dib vam ml5px" id="DrpDownTab">Sq.ft. &#9660;</a>
						<div id="builtUp" style="width:120px;display:none;top:-1px;left:0px;" class="pa">
						<span class="data p5px15px pb10px dib xlarge b pr" style="border-bottom:none;z-index:101;" id="builtupAreaLabel">Sq.ft.</span>
						<ul class="lsn m0px p0px data small bdrB0 pr uo" style="top:-1px;z-index:100;">
						<li><a class="bdrB db p2px10px" href="javascript:convert('Sq.%20Feet',1,'Sq.ft.');">Sq. Feet</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Cent',19,'Sq.ft.');">Cent</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Sq.%20Yards',2,'Sq.ft.');">Sq. Yards</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Ares',10,'Sq.ft.');">Ares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Acre',12,'Sq.ft.');">Acres</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Sq.%20Meter',3,'Sq.ft.');">Sq. Meter</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Bigha',13,'Sq.ft.');">Bigha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Hectares',15,'Sq.ft.');">Hectares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Guntha',9,'Sq.ft.');">Guntha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert('Marla',16,'Sq.ft.');">Marla</a></li>
						</ul>
						</div>
						</span>
						<script>
						jQuery(document).ready(function(e) {
							jQuery('body').click(function(){
								jQuery('#builtUp').hide();
								
							})
						});
						</script>
						</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
												<tr>
						<td class="vat p2px5px"><b>Carpet Area</b>: </td>
						
						<td class="vat p2px5px">
						<script type="text/javascript">
						function convert2(basetext,baseindex,baseunit){
						     if(1100 > 0 )  updateArea(basetext,baseindex,1100,'catpetArea','Y',baseunit,'DrpDownTab2');   }
						</script>  
						<span id="catpetArea_span">1100</span>
						<span class="pr">
						<a onClick="jQuery('#catpetArea').show();event.stopPropagation();" class="headVr pl5px pr5px small dib vam ml5px" id="DrpDownTab2">Sq.ft. &#9660;</a>
						<div id="catpetArea" style="width:120px;display:none;top:-1px;left:0px;" class="pa">
						<span class="data p5px15px pb10px dib xlarge b pr" style="border-bottom:none;z-index:101;" id="catpetAreaLabel">Sq.ft.</span>
						<ul class="lsn m0px p0px data small bdrB0 pr uo" style="top:-1px;z-index:100;">
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Sq.%20Feet',1,'Sq.ft.');">Sq.Feet</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Cent',19,'Sq.ft.');">Cent</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Sq.%20Yards',2,'Sq.ft.');">Sq. Yards</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Ares',10,'Sq.ft.');">Ares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Acre',12,'Sq.ft.');">Acres</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Sq.%20Meter',3,'Sq.ft.');">Sq. Meter</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Bigha',13,'Sq.ft.');">Bigha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Hectares',15,'Sq.ft.');">Hectares</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Guntha',9,'Sq.ft.');">Guntha</a></li>
						<li><a class="bdrB db p2px10px" href="javascript:convert2('Marla',16,'Sq.ft.');">Marla</a></li>
						</ul>
						</div>
						</span>
						<script>
						jQuery(document).ready(function(e) {
							jQuery('body').click(function(){
								jQuery('#catpetArea').hide();
								
							})
						});
						</script>			
						</td>
						</tr>
						<tr><td colspan="3"><p class="hr"></p></td></tr>
											</table>
					</td>
											<td class="vat pl15px w175px">
													<div class="w150px imgWidth150 m0a" id="thumbContainer0" >
							<div class="ac lh0 mt10px">
							<a  data-fancybox="showZoomImage"  title="3 BHK Flat for Sale In Garauli Kalan, Gurgaon" href="https://rei.wlimg.com/prop_images/224138/678806_1.jpg"><div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/224138/678806_1-350x350.jpg);background-size:cover;background-position:center;width:150px;height:150px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/224138/678806_1-350x350.jpg"  alt="3 BHK Flat for Sale In Garauli Kalan, Gurgaon"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div></a>							</div>
							</div>
													<p class="paging ac p10px small" id="propertyThumbLinks">
													<a href="javascript:void(0);" class="on w15px bdr dib b" onclick="imgDisplay('0')" title="">1</a> &nbsp; 
													</p>
						<script type="text/javascript">
						// <![CDATA[
						function imgDisplay(num) {
						as=document.getElementById('propertyThumbLinks').getElementsByTagName('a');
						for (i=0; i<as.length; i++) {
						as[i].className='p2px5px';
						document.getElementById('thumbContainer'+i).style.display='none';
						}
						as[num].className='on p2px5px'
						document.getElementById('thumbContainer'+num).style.display='';
						}
						//]]>
						</script>
						</td>
											</tr>
					</table>
					</div>
					<br />
											<div class="bdrB xxlarge b dif lh14em mb7px">Additional Details</div>
						<ul class="lsn m0px p0px wp33">
														<li class="p2px"><b>Property Age :</b> New Construction</li>
																<li class="p2px"><b>Furnishing :</b> Semi-Furnished</li>
																<li class="p2px"><b>Transaction :</b> New Property</li>
																<li class="p2px"><b>Bedrooms :</b> 3</li>
																<li class="p2px"><b>Bathrooms :</b> 3</li>
																<li class="p2px"><b>Reserved Parking :</b> 1</li>
																<li class="p2px"><b>No. of Floors :</b> 15</li>
																<li class="p2px"><b>Property On Floor :</b> 12</li>
																<li class="p2px"><b>Property Face :</b> North East</li>
														</ul>
			            <p class="cb"></p>
			            <br />
												<div class="bdrB xxlarge b dif lh14em mb7px">Amenities</div>
						<ul class="lsn m0px p0px wp33">
													<li class="p2px vat"><i class="si w24px icon-pb" title="Power Back Up"></i> Power Back Up</li>
														<li class="p2px vat"><i class="si w24px icon-lf" title="Lift"></i> Lift</li>
														<li class="p2px vat"><i class="si w24px icon-rp" title="Reserved Parking"></i> Reserved Parking</li>
														<li class="p2px vat"><i class="si w24px icon-fa" title="Security"></i> Security</li>
														<li class="p2px vat"><i class="si w24px icon-ms" title="Maintenance Staff"></i> Maintenance Staff</li>
														<li class="p2px vat"><i class="si w24px icon-fc" title="Gymnasium"></i> Gymnasium</li>
														<li class="p2px vat"><i class="si w24px icon-pk" title="Park"></i> Park</li>
														<li class="p2px vat"><i class="si w24px icon-sw" title="Swimming Pool"></i> Swimming Pool</li>
													</ul>
			            <p class="cb"></p>
			        	<br>
			        								<div class="bdrB xxlarge b dif lh14em mb7px">Property Address</div>
							<p>Garauli Kalan, Gurgaon, Sector 37C Gurgaon, Haryana</p>
													<br />
						<div class="bdrB xxlarge b dif lh14em mb7px">Location Map</div>
						<div class="bdr p2px lh0 mt10px"> 
						<iframe width="100%" height="300" frameborder="0"  marginheight="0" marginwidth="0"
						src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAN_m_CqOOtgmiF9crPBw9oSbiFBPNwn5o&q=~~Sector 37C~~Gurgaon~~Haryana,India">
						</iframe>
						</div>
												<br />
						
						<table class="w100 formTable">
						<tr>
						<td class="headVr b p5px" colspan="2">Property Seller Detail</td>
						</tr>
														<tr>
								<td class="ar b p5px w30">Contact Person :</td>
								<td class="p5px">
								Mr. K.S. Lodhi 								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Mobile :</td>
								<td  class="p5px">
								+91-9982247314								</td>
								</tr>
																<tr>
								<td class="ar b p5px">Contact Address :</td>
								<td  class="p5px">
								H.O.- 1553. New Housing Board, Near Neta Ji Subhash Chander Chowk, Sector-6, Alwar Road, Bhiwadi, Rajasthan, India								</td>
								</tr>
															</table>
													<form name="frmpropertydetail" method="post" action="http://www.lodhirealestateandbuilders.com/property-inquiry.htm">
						<p class="p10px ac">
						<input type="hidden" name="enqtype" value="property" />
						<input type="hidden" name="subject" value="Inquiry For Property - 3 BHK Flat for Sale In Garauli Kalan, Gurgaon - REI678806" />
						<input class="button p5px10px b" type="submit" value="SEND ENQUIRY" />
						<input type="hidden" name="property_id" value="678806" />
						</p>
						</form>
												<br />
						<br />
						<div class="headHr xlarge p7px pl10px">Properties you might be Interested</div>
						
						<div class="p10px">
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight">
													<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/224138/618388_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/224138/618388_1-350x350.jpg"  alt="2 BHK Flat  Available for Sale in Gurgaon"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.lodhirealestateandbuilders.com/sell/2-bhk-flats-apartments-sector-37c-gurgaon_618388.htm" title="2 BHK Flat  Available for Sale in Gurgaon" class="dif b">2 BHK Flat  Available for Sale in Gurgaon</a></p>
							<p class="mb5px"> (Sector 37C Gurgaon/Gurgaon)   Area: 1137 Sq.ft. | 2 Bedrooms | 6 Floor | 2 Bathrooms</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/224138/678816_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/224138/678816_1-350x350.jpg"  alt="3 BHK Flat for Sale In Garauli Kalan, Gurgaon"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.lodhirealestateandbuilders.com/sell/3-bhk-flats-apartments-sector-37c-gurgaon_678816.htm" title="3 BHK Flat for Sale In Garauli Kalan, Gurgaon" class="dif b">3 BHK Flat for Sale In Garauli Kalan, Gurgaon</a></p>
							<p class="mb5px"> (Sector 37C Gurgaon/Gurgaon)   Area: 1537 Sq.ft. | 3 Bedrooms | 6 Floor | 3 Bathrooms</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://static.realestateindia.com/images/no_image.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image.jpg" style="max-height:200px;max-width:200px;z-index: -1;margin-left: -1000px;" /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.lodhirealestateandbuilders.com/sell/4-bhk-flats-apartments-nirvana-country-gurgaon_650092.htm" title="4 BHK Flat for sale at Gurgaon" class="dif b">4 BHK Flat for sale at Gurgaon</a></p>
							<p class="mb5px"> (Nirvana Country, Gurgaon/Gurgaon)   Area: 3331 Sq.ft. | 4 Bedrooms | 6 Floor | 5 Bathrooms</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://static.realestateindia.com/images/no_image.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img  alt="Coming Soon Property" src="https://static.realestateindia.com/images/no_image.jpg" style="max-height:200px;max-width:200px;z-index: -1;margin-left: -1000px;" /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.lodhirealestateandbuilders.com/sell/3-bhk-flats-apartments-sector-81-gurgaon_678790.htm" title="3 BHK Flat for Sale In Sector 81 Gurgaon" class="dif b">3 BHK Flat for Sale In Sector 81 Gurgaon</a></p>
							<p class="mb5px"> (Sector 81 Gurgaon/Gurgaon)   Area: 2660 Sq.ft. | 3 Bedrooms | 2 Bathrooms</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/224138/678971_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/224138/678971_1-350x350.jpg"  alt="4 BHK Flat for Sale In Sector 81A Gurgaon"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.lodhirealestateandbuilders.com/sell/4-bhk-flats-apartments-sector-81-gurgaon_678971.htm" title="4 BHK Flat for Sale In Sector 81A Gurgaon" class="dif b">4 BHK Flat for Sale In Sector 81A Gurgaon</a></p>
							<p class="mb5px"> (Sector 81A Gurgaon/Gurgaon)   Area: 3185 Sq.ft. | 4 Bedrooms | 7 Floor | 4 Bathrooms</p>
							<br />
							</li>
														<li class="imgWidth200 ac">
							<div class="imgFrame dib bdr">
							<div class="imgFrame picBg dtc ac vam lh0">
							<div class="imgWidth" style="background-image:url(https://rei.wlimg.com/prop_images/224138/678836_1-350x350.jpg);background-size:cover;background-position:center;width:200px;height:200px;overflow:hidden;"><img src="https://rei.wlimg.com/prop_images/224138/678836_1-350x350.jpg"  alt="4 BHK Flat for Sale In Sector 81 Gurgaon"  style="max-height:150px;max-width:150px;z-index: -1;margin-left: -1000px;"  /></div>							</div>
							</div>
							<p class="mb5px mt10px"><a href="http://www.lodhirealestateandbuilders.com/sell/4-bhk-flats-apartments-sector-81-gurgaon_678836.htm" title="4 BHK Flat for Sale In Sector 81 Gurgaon" class="dif b">4 BHK Flat for Sale In Sector 81 Gurgaon</a></p>
							<p class="mb5px"> (Sector 81 Gurgaon/Gurgaon)   Area: 4200 Sq.ft. | 4 Bedrooms | 12 Floor | 4 Bathrooms</p>
							<br />
							</li>
											
						</ul>
						</div>
						</div>
										<div id="myModal" class="modal fade dn pf" role="dialog" style="z-index:9999;left:0;top:0%;width:100%;height:100%;background-color:rgba(0,0,0,0.6);overflow-x: hidden; overflow-y: auto;">
				    <!-- Modal content-->
				    <div style="max-width:700px;margin-top: 50px;min-height:400px;" class="modal-content data m0a p10px pr">
				      <div class="modal-header">
				        <a style="right:25px;top:25px;" class="pa b xxxlarge" data-dismiss="modal"><span class="xlarge">&times;</span></a>	        
				      </div>
				      <div class="modal-body">
				        <div class="ac" style="padding-top: 10%;"><p style="font-size:18px">Loading...</p></div>
				      </div>
				      <div class="modal-footer">
				        
				      </div>
				    </div>
				</div>
				<script type="text/javascript">
					jQuery(document).ready(function(){
						jQuery(document).on("click", ".submit-inquiry" , function(){
							var form = jQuery(this).parent().find(".inquiry-form");
							if(form.length){
								jQuery.ajax({
									url: form.attr("action"),
									type: form.attr("method"),
									data:form.serialize(),
									crossDomain:true,
									success:function(res){
										jQuery("#myModal .modal-body").html(res);
									}
								});
							}
						});
						jQuery(document).on("click", "[data-dismiss=modal]", function(){
							jQuery("#myModal .modal-body").html('<div class="ac" style="padding-top: 10%;"><p style="font-size:18px">Loading...</p></div>');
							jQuery("#myModal").hide();
						});
						jQuery(document).on("submit", "form[name=static_form]", function(e){				
							e.preventDefault();
							var isValidForm =static_inq_form_validate(jQuery(this).attr("form-id"));
							if(isValidForm == undefined){
								var form = jQuery(this);
								if(form.length){
									jQuery.ajax({
										url: form.attr("action"),
										type: form.attr("method"),
										data:form.serialize(),
										crossDomain:true,
										beforeSend:function(){
											jQuery("#myModal .modal-footer").html("");
										},
										success:function(res){
											jQuery("#myModal .modal-body").html(res);
											setTimeout(function(){
												jQuery("#myModal", document).hide();
												jQuery("#myModal .modal-body").html('<div class="ac" style="padding-top: 10%;"><p style="font-size:18px">Loading...</p></div>');
												},2000)
										}
									});
								}
							}
						});
						var modal = jQuery("#myModal", document);
			
						jQuery(document).on("click", ".submit-inquiry" , function(){
						    modal.show();
						});
			
						window.onclick = function(event) {
						    if (jQuery(event.target) == modal) {
						        modal.css("display","none");
						    }
						}
					});
				</script>
				";i:1;s:56:"3 BHK Flats & Apartments for Sale in Sector 37c, Gurgaon";i:2;s:269:"Property for Sale in Sector 37C, Gurgaon, Haryana, 3 Bedrooms, 3 Bath Rooms, 1 Parking, 15 Total Floor, 1537 Sq.ft. Flats & Apartments in Sector 37C, Gurgaon, Haryana, Lodhi Real Estate & Buildwell deal in all type of Flats & Apartments in Sector 37C, Gurgaon, Haryana.";i:3;s:269:"Property for Sale in Sector 37C, Gurgaon, Haryana, 3 Bedrooms, 3 Bath Rooms, 1 Parking, 15 Total Floor, 1537 Sq.ft. Flats & Apartments in Sector 37C, Gurgaon, Haryana, Lodhi Real Estate & Buildwell deal in all type of Flats & Apartments in Sector 37C, Gurgaon, Haryana.";}