text:
package com.softtechlabs.selenquery.core;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;
import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.Capabilities;
import org.openqa.selenium.remote.CommandExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.HttpCommandExecutor;
import org.openqa.selenium.remote.RemoteWebDriver;

 class ReusableRemoteWebDriver extends RemoteWebDriver {

	private boolean isNewSession = true;
	private static final String SID_FILE = System.getProperty("java.io.tmpdir") + "seleniumSession.txt";

	 ReusableRemoteWebDriver(SupportedBrowsers browsers, DesiredCapabilities capabilities, boolean NewSession, String driverpath) {
		 buildDriver(browsers, capabilities, NewSession, driverpath, "localhost");
	 }

	private void buildDriver(SupportedBrowsers browsers, DesiredCapabilities capabilities, boolean NewSession, String driverpath, String host){
		String sessionData = null;
		String address;
		if (!NewSession) {
			sessionData = readPreviousSessionId();
		}
		if (sessionData != null) {
			String hostport = sessionData.split("\\|")[0];
			address = hostport;
			String SessionIdStirng = sessionData.split("\\|")[1];
			URL url = null;
			try {
				url = new URL(hostport);
			} catch (MalformedURLException e) {
			}
			CommandExecutor executor = new HttpCommandExecutor(url);
			setCommandExecutor(executor);
			setSessionId(SessionIdStirng);
			try {
				System.out.println(getCurrentUrl());
				isNewSession = false;
			} catch (Exception ex) {
				try {
					startSession(capabilities);
					saveSessionId(address + "|" + getSessionId().toString());
				} catch (Exception ex1) {
					// System.out.println(ex1.getMessage());
					address = startServer(browsers, driverpath, host);
					startSession(capabilities);
					saveSessionId(address + "|" + getSessionId().toString());
				}
			}

		} else {
			address = startServer(browsers, driverpath, host);
			startSession(capabilities);
			saveSessionId(address + "|" + getSessionId().toString());
		}

	}

	private String startServer(SupportedBrowsers browsers, String driverpath, String host) {
		int port = PortFinder.findFreePort();
		System.out.println();

		Runtime rt = Runtime.getRuntime();
		try {
			String portstr = "";
			if (browsers == SupportedBrowsers.Chrome) {
				portstr = "--port=" + port;
			} else if (browsers == SupportedBrowsers.InternetExplorer) {
				portstr = "/port=" + port;
			}

			rt.exec(new String[] { driverpath, portstr });

		} catch (IOException e1) {
			e1.printStackTrace();
		}

		String address = "http://" + host + ":" + port;
		URL url = null;
		try {
			url = new URL(address);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		CommandExecutor executor = new HttpCommandExecutor(url);
		setCommandExecutor(executor);
		return address;

	}

	private String readPreviousSessionId() {
		String sid = null;
		File sidFile = new File(SID_FILE);
		BufferedReader reader = null;
		try {
			reader = new BufferedReader(new FileReader(sidFile));
			sid = reader.readLine();
		} catch (IOException e) {
			// noop
		} finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return sid;
	}

	private void saveSessionId(String sid) {
		File sidFile = new File(SID_FILE);
		FileWriter writer = null;
		try {
			writer = new FileWriter(sidFile);
			writer.write(sid);
		} catch (IOException e) {
			System.out.println("could not save session for furture use" + e.getMessage());
		} finally {
			if (writer != null) {
				try {
					writer.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}

	void setReusedCapabilities(Capabilities capabilities) {
		Field capabilitiesField = getFieldSafely(this, RemoteWebDriver.class);
		writeValueToField(this, capabilitiesField, capabilities);
	}

	private static Field getFieldSafely(Object object, Class<?> clazz) {
		try {
			return clazz.getDeclaredField("capabilities");
		} catch (Exception e) {
			throw new IllegalStateException(e);
		}
	}

	private static void writeValueToField(Object object, Field field, Object value) {
		boolean wasAccessible = field.isAccessible();
		if (!wasAccessible) {
			field.setAccessible(true);
		}
		try {
			field.set(object, value);
		} catch (Exception e) {
			throw new IllegalStateException(e);
		}
		if (!wasAccessible) {
			field.setAccessible(false);
		}
	}

	public boolean isNewSession() {
		return isNewSession;
	}

}


Also , wireless internet connection is provided in every part of the campus. Document transformation regarding official documents is also implemented online. To reduce paper consumption, the announcements in our campus are made through digital announcement screens in particular points.
Students are able to improve themselves socially with the alternative events within or outside the school. Yaşar University hosts both international and national organizations and events with the contribution of native and non-native academicians. All faculties organize conferences, symposiums, seminars, panel discussions, exhibitions, concerts and talks with the participation of world- wide known professionals.
Yaşar University Student Clubs help students to contribute to a social environment while they are enjoying their hobbies. These clubs are active during the academic year. Their aim is to enrich the students, who are getting ready for their professional lives, academically and personally. Education at Yaşar University is based on art and productivity. Thus, students become environmentally and communally conscious, creative and intellectual with the help of these clubs. Before graduating from the university, students become experienced researchers. Students are supported with a great variety of social club activities. There are many social clubs related to the student's professional and private needs. More clubs can be established upon students' request.


RAYNHAM — Just as customer Lyndsay Marques stepped out of the Hess gas station convenience store, a cloud of white flame-retardant powder suddenly rained down from above, covering everything in sight with a dusty layer and necessitating hospital trips for a number of people.
Just as customer Lyndsay Marques stepped out of the Hess gas station convenience store, a cloud of white flame-retardant powder suddenly rained down from above, covering everything in sight with a dusty layer and necessitating hospital trips for a number of people.
"I was just walking outside and I saw the white smoke," the Taunton woman said.
Standing outside the station on the corner of Route 44 and South Street, Marques didn't need medical attention.
The powder, which Andrews said is similar to baking soda, can cause skin, eye and respiratory irritation.
Fire officials still don't know what caused the station's emergency sprinkler system to unexpectedly go off shortly after 1:30 p.m.
"There was no flame, no fire, no explosion," the chief said.
Firefighters determined that nobody pulled a manual trigger on the emergency system, so there was likely a problem with the automatic sensors.
The cause of the malfunction is still under investigation, and the station has been closed until further notice.
"The system worked, except there was no fire," Andrews said.
White, flame-retardent powder covers cars and pavement after an emergency sprinkler system unexpectedly went off shortly after 1:30 p.m. Thursday at the Hess gas station on the corner of Route 44 and South Street.


How does Knights Edge use login information?
Welcome to Knights Edge Ltd's(Knights Edge) website www.KnightsEdge.com (the "Site"). We understand that privacy online is important to users of our Site, especially when conducting business. This statement governs our privacy policies with respect to those users of the Site ("Visitors") who visit without transacting business and Visitors who register to transact business on the Site and make use of the various services offered by KnightsEdge.com (collectively, "Services") ("Authorized Customers").
What is "Personally Identifiable Information"??
We use Personally Identifiable Information to customize KnightsEdge.com, to make appropriate service offerings, and to fulfill buying and selling requests on the Site. We may email Visitors and Authorized Customers about research or purchase and selling opportunities on the Site or information related to the subject matter of the Site. We may also use Personally Identifiable Information to contact Visitors and Authorized Customers in response to specific inquiries, or to provide requested information.
Personally Identifiable Information collected by the KnightsEdge.com website is securely stored and is not accessible to third parties or employees of Knights Edge except for use as indicated above.
Knights Edge uses login information, including, but not limited to, IP addresses, ISPs, and browser types, to analyze trends, administer the Site, track a user's movement and use, and gather broad demographic information.
Our employees are familiar with our security policy and practices. Online Personally Identifiable Information of our Visitors and Authorized Customers is only accessible to a limited number of qualified employees who are given a password in order to gain access to the information. We audit our security systems and processes on a regular basis. Online sensitive information, such as credit card numbers or social security numbers, is protected by encryption protocols, in place to protect information sent over the Internet. While we take commercially reasonable measures to maintain a secure site, electronic communications and databases are subject to errors, tampering and break-ins, and we cannot guarantee or warrant that such events will not take place and we will not be liable to Visitors or Authorized Customers for any such occurrences.
We provide Visitors and Authorized Customers with a mechanism to delete/deactivate Personally Identifiable Information from the Site's database by contacting sales@knightsedge.com. However, because of backups and records of deletions, it may be impossible to delete a Visitor's entry without retaining some residual information. An individual who requests to have Personally Identifiable Information deactivated will have this information functionally deleted, and we will not sell, transfer, or use Personally Identifiable Information relating to that individual in any way moving forward.
For your protection, Knights Edge, Ltd. has implemented Advanced encryption technology for secure communication. This Secure Socket Layer (SSL) protocol allows applications (your browser and the Knights Edge shopping cart) to communicate across the Internet in a secured manner to prevent eavesdropping, tampering and message forgery.
PLEASE NOTE: This Site is not directed at children. Visitors and Authorized Customers are required to be eighteen years or older. Links: This web site contains links to other web sites. Please note that when you click on one of these links, you are moving to another web site. We encourage you to read the privacy statements of these linked sites as their privacy policies may differ from ours.


text:
Mac On Must Win Game Friday
Newcastle Eagles/News/BBL/Mac On Must Win Game Friday
Last weekend was a very disappointing one for Esh Group Eagles Newcastle as they crashed out of The BBL Cup at the semi-final stage, writes Jeff King. A realistic chance to get back to a showpiece final was shattered by a London Lions who won the two-legged tie by an aggregate of ten points.
For Head Coach Fab Flournoy and his coaching staff, it's now all about how they get the players back up and focused as they face a difficult Championship game this Friday against a red-hot Sheffield Sharks side. Assistant Coach Ian Macleod spoke about their plans.
"We bounce back the only way we can, really. Review the game, analyse the video and attempt to put things right on the practice floor, taking the improvements into Friday's game at Sheffield."
After beating Lions by two-points in the first leg, the Eagles lost the second by twelve and Macleod addressed the difference in the two games as well as giving some thoughts on where he believes the side need to improve.
"I think in the home leg we did some good things defensively, and while we didn't score a huge amount of points, we were able to limit London and take a 2-point lead into the second leg. Ideally, that would have been a larger lead."
RELATED NEWS AND MORE
Mac Turns Magnifying Glass On Team To Rebound From Riders
Eagles Intensity Will Return For Riders
Picking Back Up and Bringing The Plan To Life
"The second leg was simply the reverse of that. While we were able to score, and even left a few easy ones out there, we didn't stifle them enough on the defensive end. We have to stay focused and locked in for longer stretches."
"It isn't tactical, it's about being in the moment and executing consistently. We can't do that for a few minutes at a time, it needs to be consistent and relentless."
Even winning the first leg was no consolation to an Eagles side that were outplayed and out thought by a very good Lions side.
"If it was a home and away league game, and a one-off game, then maybe we could take something away from it. Realistically, we will be judged on the last game we play. They did a good job of playing with tempo and intensity."
"Offensively wasn't the issue, whatever their game plan was, we scored 85 points and missed some easy ones that should have pushed us into the 90's and possible above."
But, as Macleod mentioned they have to move on and in to Sheffield for their next big test against a Sharks side that have won seven games in a row. Macleod knows who tough and important in the context of Newcastle's season that one is going to be.
"They are a team who have regrouped well. They had one or two disappointing performances early on, and they made some personnel changes which have given them a boost, it will be a tough game, it always is at Sheffield, and we need to respond to that challenge on Friday."
"While no-one remains unbeaten, it seems like every game is a must win. Right now, the result is as important as the performance as we look to put things right. They are coming off a great result at Leicester and they will be feeling confident on their home court."
The Eagles have already lost four in the league so far this season so they really need to be focused and switched on to make sure it's not five especially as a win would also put a dent in the hopes of a Championship rival.
Fans not able to travel to Sheffield on Friday can watch the game live for free on the BBL website in a pilot to test brand new automated camera technology being trialled by the league and its broadcast partners.
DBL Sharks Sheffield,Ian MacLeod,Sheffield Sharks

redpajama_set_name: RedPajamaCommonCrawl


Effective Rug Cleaning SE21 Dulwich | RDA Cleaning & Maintenance Ltd.
Make sure to do everything necessary to maintain your stylish rugs in top condition. Naturally, the first thing you need to think about precisely is what is the most effective rug cleaning approach. Well, certainly it is not the one with materials at hand. Better, opt for professional rug cleaning services in Dulwich SE21.
How Will Our Rug Cleaners Dulwich SE21 Carry Out The Job?
Depending on the rug type you have, either deep dry or steam rug cleaning Dulwich SE21 will be performed. Steam cleaning (also called hot water extraction) is done with a powerful professional hot water extraction machine. First, the rug is shampooed and then rinsed off. During the process, 95% of the water used is extracted back into the machine. This allows for quicker drying and less risk of ruining the rug and the floor beneath it.
Rug Cleaning SE21 Dulwich Experts. Book Now!
To book our deep rug cleaning Dulwich SE21 service just contact our customer care centre at 020 3404 1646 or by completing our online contact form. The booking request will be processed as soon as possible, and within 2 hours, you will receive an SMS and e-mail confirming the booking. There is no deposit. You can book a deep rug cleaning for the same day or any other day of the year. Book more than 1 service at a time and get amazing discounts! Regular customers receive preferential prices.


Most older multifamily buildings in Chicago are heated by centrally metered steam or hot water systems. These buildings cannot operate effciently when these systems become imbalanced. The buildings become under and over heated, which causes tenant discomfort and higher energy use intensity.


text:
Report: DeMario Jackson Won't Return to 'Bachelor in Paradise'
UPI June 25, 2017 8:00 am
Craig Sjodin/ABC
DeMario Jackson
DeMario Jackson reportedly won't return to ABC series Bachelor in Paradise.
The 30-year-old reality star will turn down the opportunity to resume filming after being suspected of sexually assaulting fellow contestant Corinne Olympios on the show, according to CNN.
'Bachelor in Paradise' to Resume Production After Sexual Misconduct Investigation
Production on the reality show was suspended after a producer allegedly witnessed an incident between castmembers DeMario Jackson and Corinne Olympios.
"[DeMario decided] it's not a good idea," a source said. "[He's] focusing on himself."
Us Weekly reported Jackson will take some "time away" from the spotlight.
"DeMario does not feel it is a good idea for him to go back on the show," an insider said. "What he went through was very difficult and he doesn't feel it is in his best interest to go back at this time."
Warner Bros. Television announced Tuesday that no evidence of "misconduct" was found during their investigation of the alleged assault. The company suspended filming this month after a producer raised concerns about Jackson and Olympios taking part in sexual acts in a pool while under the influence of alcohol.
"It's unfortunate that my character and family name has been assassinated this past week with false claims and malicious allegations," Jackson told People last week after Olympios said she was a "victim" in the situation.
'Bachelor in Paradise' Trailer Teases Blake's Messy Love Triangle in Season 6 (VIDEO)


text:
package org.apache.geode.internal.protocol.protobuf.v1;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.awaitility.Awaitility;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.RestoreSystemProperties;
import org.junit.experimental.categories.Category;

import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.server.CacheServer;
import org.apache.geode.internal.AvailablePortHelper;
import org.apache.geode.internal.protocol.protobuf.v1.serializer.ProtobufProtocolSerializer;
import org.apache.geode.internal.protocol.protobuf.v1.serializer.exception.InvalidProtocolMessageException;
import org.apache.geode.internal.protocol.protobuf.v1.utilities.ProtobufUtilities;
import org.apache.geode.management.internal.security.ResourceConstants;
import org.apache.geode.management.internal.security.ResourcePermissions;
import org.apache.geode.security.AuthenticationFailedException;
import org.apache.geode.security.ResourcePermission;
import org.apache.geode.security.SecurityManager;
import org.apache.geode.test.junit.categories.ClientServerTest;

@Category({ClientServerTest.class})
public class AuthorizationIntegrationTest {

  private static final String TEST_USERNAME = "bob";
  private static final String TEST_PASSWORD = "bobspassword";

  private static final String TEST_REGION1 = "testRegion1";
  private static final String TEST_REGION2 = "testRegion2";
  private static final String TEST_KEY1 = "testKey1";
  private static final String TEST_KEY2 = "testKey2";

  private final String OQLTwoRegionTestQuery =
      "select * from /" + TEST_REGION1 + " one, /" + TEST_REGION2 + " two where one.id = two.id";

  @Rule
  public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();

  private Cache cache;
  private int cacheServerPort;
  private CacheServer cacheServer;
  private Socket socket;
  private OutputStream outputStream;
  private ProtobufSerializationService serializationService;
  private InputStream inputStream;
  private ProtobufProtocolSerializer protobufProtocolSerializer;
  private Object securityPrincipal;
  private TestSecurityManager securityManager;

  // Read access to all regions, all keys
  public static final ResourcePermission READ_PERMISSION = ResourcePermissions.DATA_READ;

  // Write access to all regions, all keys
  public static final ResourcePermission WRITE_PERMISSION = ResourcePermissions.DATA_WRITE;

  private class TestSecurityManager implements SecurityManager {
    private Set<ResourcePermission> allowedPermissions = new HashSet<>();

    void addAllowedPermission(ResourcePermission permission) {
      allowedPermissions.add(permission);
    }

    @Override
    public Object authenticate(Properties credentials) throws AuthenticationFailedException {
      return securityPrincipal;
    }

    @Override
    public boolean authorize(Object principal, ResourcePermission permission) {
      // Only allow data operations and only from the expected principal
      if (principal != securityPrincipal
          || permission.getResource() != ResourcePermission.Resource.DATA) {
        return false;
      }
      // Succeed if user has permission for all regions and all keys for the given operation
      if (allowedPermissions.contains(
          new ResourcePermission(ResourcePermission.Resource.DATA, permission.getOperation()))) {
        return true;
      }
      // Succeed if user has permission for all keys in the given region for the given operation
      if (allowedPermissions.contains(new ResourcePermission(ResourcePermission.Resource.DATA,
          permission.getOperation(), permission.getTarget()))) {
        return true;
      }

      return allowedPermissions.contains(permission);
    }
  }

  @Before
  public void setUp() throws IOException, InvalidProtocolMessageException {
    Properties expectedAuthProperties = new Properties();
    expectedAuthProperties.setProperty(ResourceConstants.USER_NAME, TEST_USERNAME);
    expectedAuthProperties.setProperty(ResourceConstants.PASSWORD, TEST_PASSWORD);

    securityPrincipal = "mockSecurityPrincipal";
    securityManager = new TestSecurityManager();

    Properties properties = new Properties();
    CacheFactory cacheFactory = new CacheFactory(properties);
    cacheFactory.set("mcast-port", "0"); // sometimes it isn't due to other tests.

    cacheFactory.setSecurityManager(securityManager);
    cache = cacheFactory.create();

    cacheServer = cache.addCacheServer();
    cacheServerPort = AvailablePortHelper.getRandomAvailableTCPPort();
    cacheServer.setPort(cacheServerPort);
    cacheServer.start();

    cache.createRegionFactory().create(TEST_REGION1);
    cache.createRegionFactory().create(TEST_REGION2);

    System.setProperty("geode.feature-protobuf-protocol", "true");
    System.setProperty("geode.protocol-authentication-mode", "SIMPLE");
    socket = new Socket("localhost", cacheServerPort);

    Awaitility.await().atMost(5, TimeUnit.SECONDS).until(socket::isConnected);
    outputStream = socket.getOutputStream();
    inputStream = socket.getInputStream();

    serializationService = new ProtobufSerializationService();
    protobufProtocolSerializer = new ProtobufProtocolSerializer();

    MessageUtil.performAndVerifyHandshake(socket);

    ClientProtocol.Message authenticationRequest = ClientProtocol.Message.newBuilder()
        .setHandshakeRequest(ConnectionAPI.HandshakeRequest.newBuilder()
            .putCredentials(ResourceConstants.USER_NAME, TEST_USERNAME)
            .putCredentials(ResourceConstants.PASSWORD, TEST_PASSWORD))
        .build();
    authenticationRequest.writeDelimitedTo(outputStream);

    ClientProtocol.Message responseMessage = ClientProtocol.Message.parseDelimitedFrom(inputStream);
    assertEquals(ClientProtocol.Message.HANDSHAKERESPONSE_FIELD_NUMBER,
        responseMessage.getMessageTypeCase().getNumber());
    ConnectionAPI.HandshakeResponse authenticationResponse = responseMessage.getHandshakeResponse();
    assertTrue(authenticationResponse.getAuthenticated());
  }

  @After
  public void shutDown() throws IOException {
    cache.close();
    socket.close();
  }

  @Test
  public void validateNoPermissions() throws Exception {
    verifyLocatorOperation(false);
    verifyOperations(false, false, TEST_REGION1, TEST_KEY1);
  }

  @Test
  public void validateWritePermission() throws Exception {
    securityManager.addAllowedPermission(WRITE_PERMISSION);

    verifyLocatorOperation(false);
    verifyOperations(false, true, TEST_REGION1, TEST_KEY1);
  }

  @Test
  public void validateReadPermission() throws Exception {
    securityManager.addAllowedPermission(READ_PERMISSION);

    verifyLocatorOperation(true);
    verifyOperations(true, false, TEST_REGION1, TEST_KEY1);
  }

  @Test
  public void validateReadAndWritePermission() throws Exception {
    securityManager.addAllowedPermission(WRITE_PERMISSION);
    securityManager.addAllowedPermission(READ_PERMISSION);

    verifyLocatorOperation(true);
    verifyOperations(true, true, TEST_REGION1, TEST_KEY1);
  }

  @Test
  public void validateRegionLevelPermissions() throws Exception {
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.WRITE, TEST_REGION1));
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION2));

    verifyOperations(false, true, TEST_REGION1, TEST_KEY1);
    verifyOperations(false, true, TEST_REGION1, TEST_KEY2);
    verifyOperations(true, false, TEST_REGION2, TEST_KEY1);
    verifyOperations(true, false, TEST_REGION2, TEST_KEY2);
  }

  @Test
  public void validateKeyLevelPermissions() throws Exception {
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.WRITE, TEST_REGION1, TEST_KEY1));
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION2, TEST_KEY2));

    verifyOperations(false, true, TEST_REGION1, TEST_KEY1);
    verifyOperations(false, false, TEST_REGION1, TEST_KEY2);
    verifyOperations(false, false, TEST_REGION2, TEST_KEY1);
    verifyOperations(true, false, TEST_REGION2, TEST_KEY2);
  }

  @Test
  public void validateRegionLevelPermissionsOnBatchOperations() throws Exception {
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.WRITE, TEST_REGION1));
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION2));

    verifyBatchOperation(true, TEST_REGION1, false, false);
    verifyBatchOperation(false, TEST_REGION1, true, true);
    verifyBatchOperation(true, TEST_REGION2, true, true);
    verifyBatchOperation(false, TEST_REGION2, false, false);
  }

  @Test
  public void validateKeyLevelPermissionsOnBatchOperations() throws Exception {
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.WRITE, TEST_REGION1, TEST_KEY1));
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION2, TEST_KEY2));

    verifyBatchOperation(true, TEST_REGION1, false, false);
    verifyBatchOperation(false, TEST_REGION1, true, false);
    verifyBatchOperation(true, TEST_REGION2, false, true);
    verifyBatchOperation(false, TEST_REGION2, false, false);
  }

  @Test
  public void testOQLAuthorization() throws Exception {
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION1));
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION2));

    ClientProtocol.Message request = ClientProtocol.Message.newBuilder()
        .setOqlQueryRequest(RegionAPI.OQLQueryRequest.newBuilder().setQuery(OQLTwoRegionTestQuery))
        .build();
    protobufProtocolSerializer.serialize(request, outputStream);

    ClientProtocol.Message response = protobufProtocolSerializer.deserialize(inputStream);
    assertEquals(ClientProtocol.Message.MessageTypeCase.OQLQUERYRESPONSE,
        response.getMessageTypeCase());
  }

  @Test
  public void testOQLRequiresAuthorizationForMultipleRegions() throws Exception {
    securityManager.addAllowedPermission(new ResourcePermission(ResourcePermission.Resource.DATA,
        ResourcePermission.Operation.READ, TEST_REGION1));

    ClientProtocol.Message request = ClientProtocol.Message.newBuilder()
        .setOqlQueryRequest(RegionAPI.OQLQueryRequest.newBuilder().setQuery(OQLTwoRegionTestQuery))
        .build();
    protobufProtocolSerializer.serialize(request, outputStream);

    ClientProtocol.Message response = protobufProtocolSerializer.deserialize(inputStream);
    assertEquals(ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE,
        response.getMessageTypeCase());
    assertEquals(BasicTypes.ErrorCode.AUTHORIZATION_FAILED,
        response.getErrorResponse().getError().getErrorCode());
  }

  private void verifyBatchOperation(boolean testRead, String region, boolean expectedKey1Success,
      boolean expectedKey2Success) throws Exception {
    ClientProtocol.Message request;
    if (testRead) {
      request = ClientProtocol.Message.newBuilder()
          .setGetAllRequest(RegionAPI.GetAllRequest.newBuilder().setRegionName(region)
              .addKey(serializationService.encode(TEST_KEY1))
              .addKey(serializationService.encode(TEST_KEY2)))
          .build();
    } else {
      request = ClientProtocol.Message.newBuilder().setPutAllRequest(RegionAPI.PutAllRequest
          .newBuilder().setRegionName(region)
          .addEntry(ProtobufUtilities.createEntry(serializationService, TEST_KEY1, "TEST_VALUE"))
          .addEntry(ProtobufUtilities.createEntry(serializationService, TEST_KEY2, "TEST_VALUE")))
          .build();
    }

    protobufProtocolSerializer.serialize(request, outputStream);
    ClientProtocol.Message response = protobufProtocolSerializer.deserialize(inputStream);
    assertNotEquals(ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE,
        response.getMessageTypeCase());

    List<BasicTypes.KeyedError> keyedErrors =
        testRead ? response.getGetAllResponse().getFailuresList()
            : response.getPutAllResponse().getFailedKeysList();
    String operation = testRead ? "getAll" : "putAll";
    if (errorListContainsKey(keyedErrors, serializationService.encode(TEST_KEY1))) {
      if (expectedKey1Success) {
        fail("Unexpectedly failed " + operation + " operation for key " + TEST_KEY1);
      }
    } else if (!expectedKey1Success) {
      fail("Unexpected success in " + operation + " operation for key " + TEST_KEY1);
    }
    if (errorListContainsKey(keyedErrors, serializationService.encode(TEST_KEY2))) {
      if (expectedKey2Success) {
        fail("Unexpectedly failed " + operation + " operation for key " + TEST_KEY2);
      }
    } else if (!expectedKey2Success) {
      fail("Unexpected success in " + operation + " operation for key " + TEST_KEY2);
    }
  }

  private boolean errorListContainsKey(List<BasicTypes.KeyedError> errors,
      BasicTypes.EncodedValue key) {
    for (BasicTypes.KeyedError error : errors) {
      if (error.getKey().equals(key)) {
        return true;
      }
    }
    return false;
  }

  private void verifyLocatorOperation(boolean readAllowed) throws Exception {
    ClientProtocol.Message getRegionsMessage = ClientProtocol.Message.newBuilder()
        .setGetRegionNamesRequest(RegionAPI.GetRegionNamesRequest.newBuilder()).build();
    validateOperationAuthorized(getRegionsMessage, inputStream, outputStream,
        readAllowed ? ClientProtocol.Message.MessageTypeCase.GETREGIONNAMESRESPONSE
            : ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE);
  }

  private void verifyOperations(boolean readAllowed, boolean writeAllowed, String region,
      String key) throws Exception {
    ClientProtocol.Message getMessage =
        ClientProtocol.Message.newBuilder().setGetRequest(RegionAPI.GetRequest.newBuilder()
            .setRegionName(region).setKey(serializationService.encode(key))).build();
    validateOperationAuthorized(getMessage, inputStream, outputStream,
        readAllowed ? ClientProtocol.Message.MessageTypeCase.GETRESPONSE
            : ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE);

    ClientProtocol.Message putMessage = ClientProtocol.Message.newBuilder()
        .setPutRequest(RegionAPI.PutRequest.newBuilder().setRegionName(region)
            .setEntry(ProtobufUtilities.createEntry(serializationService, key, "TEST_VALUE")))
        .build();
    validateOperationAuthorized(putMessage, inputStream, outputStream,
        writeAllowed ? ClientProtocol.Message.MessageTypeCase.PUTRESPONSE
            : ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE);

    ClientProtocol.Message removeMessage =
        ClientProtocol.Message.newBuilder().setRemoveRequest(RegionAPI.RemoveRequest.newBuilder()
            .setRegionName(region).setKey(serializationService.encode(key))).build();
    validateOperationAuthorized(removeMessage, inputStream, outputStream,
        writeAllowed ? ClientProtocol.Message.MessageTypeCase.REMOVERESPONSE
            : ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE);
  }

  private void validateOperationAuthorized(ClientProtocol.Message message, InputStream inputStream,
      OutputStream outputStream, ClientProtocol.Message.MessageTypeCase expectedResponseType)
      throws Exception {
    protobufProtocolSerializer.serialize(message, outputStream);
    ClientProtocol.Message response = protobufProtocolSerializer.deserialize(inputStream);
    assertEquals(expectedResponseType, response.getMessageTypeCase());
    if (expectedResponseType == ClientProtocol.Message.MessageTypeCase.ERRORRESPONSE) {
      Assert.assertEquals(BasicTypes.ErrorCode.AUTHORIZATION_FAILED,
          response.getErrorResponse().getError().getErrorCode());
    }
  }
}

redpajama_set_name: RedPajamaGithub


text: Q: Google Developer console ERROR: JAR_SIG_NO_MANIFEST: Missing META-INF/MANIFEST.MF I have create apk zip aligned with kivy/buildozer i have upload a apk in google developer console but when the download have finish i have this  ERROR: JAR_SIG_NO_MANIFEST: Missing META-INF/MANIFEST.MF  who help me?? thanks in advance

redpajama_set_name: RedPajamaStackExchange


text:
Atlantic Flyway
Audubon Pennsylvania
Brewers for the Delaware River
Important Bird Areas
Bird Town
Audubon At Home
Windows/Glass Bird Strikes
Birds and Birding
Audubon's Birds and Climate Change
John James Audubon Birds of America
Year of the Bird Proclamations
Chapters & Centers
The Discovery Center
Chapter Corner
Kittatinny Ridge
Waggoner's Gap
John James Audubon Center at Mill Grove
Philadelphia Programs
Audubon Magazine
PA Board Members
PA Staff Members
Art Show 2019
Three Year Plan | 2019-2021
2019 Friends of a Feather
Donate to PA
Volunteer in Pennsylvania
Brewers depend on clean, reliable water to survive and thrive, just like birds.
Photo: Osprey. Photo: Kurt Wecker/Audubon Photography Awards
On January 31, 2019, the National Audubon Society and Audubon Pennsylvania launched the Brewers for the Delaware River Association. The coalition of craft brewers in the Delaware River Watershed united to promote the protection of the watershed as a reliable, clean water source that benefits the people, birds and communities of the region.
"Birds, people and brewers all rely on clean water to survive," said Julie Hill-Gabriel, vice president of water conservation at the National Audubon Society. "Teaming up with local brewers throughout the Delaware River Watershed will not only bolster Audubon's efforts to preserve the home of more than 400 bird species – like Red-headed Woodpeckers, Sanderlings and Red Knots; but it also inspires economic growth for local businesses and industries that depend on the health of the watershed and its water."
Making up at least 90 percent of beer, water is an essential ingredient that gives each brew a uniqueness that depends on the quality of the water in each local community. The newly formed coalition joined forces under a shared concern of preserving a steady supply of clean water from Delaware River Watershed, which provides drinking water for more than 15 million Americans across four Atlantic states: Delaware, New Jersey, New York and Pennsylvania.
Click here to take action to Protect and Restore of the Delaware River Watershed
Photo: Image: Courtesy of Delaware River Basin Commission
"Water is a necessary component of life. It sustains us. Our planet and all creatures on it need it," said Carly Chelder, founder of Tannery Run Brew Works. "Water is also the most important ingredient in making beer. Because we understand the need to preserve our natural resources, we must maintain biodiversity to sustain our environment; and we must keep it clean if we want to continue to make delicious beer and enjoy our local waterways like the Tannery Run."
"As a small brewery, it is critical that we can rely on clean water for our operation. For any brewery, if we don't have clean water, we can't brew beer," said Mike Contreras, director of sales and marketing at 2SP Brewing Company. "The Delaware River Watershed's protection and preservation ensure we can bring better beer to the region and keep tap lines flowing."
"Having preservation efforts in place, especially concerning clean water, is not only important but vital to a healthy planet – and a healthy planet, is a happy planet," said Sam Masotto, owner of Bonn Place Brewing Company. "The health of the Delaware River Watershed directly impacts me and my business because we need clean water to live and the better the water quality, the better our beer."
In addition to providing reliable, clean water for birds, people and the brewing industry in the region, the watershed encompasses more than 13,500 square miles of land across Delaware, New Jersey, New York and Pennsylvania, including a variety of vast forests, 400 miles of designated National Wild and Scenic Rivers, and 700,000 acres of wetland habitat. Economically, it is a driver of more than $25 billion in annual activity, $21 billion in ecosystem goods and services each year, and contributes 600,000 jobs and $10 billion in annual wages to the economy.
In January 2019, the National Audubon Society delivered a joint letter signed by 12 breweries from the Delaware River Watershed to the 116th U.S. Congress, urging members to support the watershed and the small businesses that rely on it for economic success. The signees called for congressional members' support by providing robust funding for the Delaware River Basin Restoration Program in years to come.
To date, members of the Brewers of the Delaware River Association include:
2SP Brewing Company, Baba's Brew, Bangor Trust Brewing, Bonn Place Brewing Company, Crowded Castle Brewing Company, Evil Genius Beer Company, Flying Fish Brewing Co., Fox N Hare Brewing Company, Goose Island Brewhouse Philadelphia, Mainstay Independent Brewing Company, Moss Mill Brewing Company, Newtown Brewing Company, Roscoe Beer Company, Shrewd Fox Brewery, Steel City Coffeehouse & Brewery, Stoney Creek Homebrewers, Tannery Run Brew Works, Tuned Up Brewing Company and Zed's Beer/Bado Brewing.
Are you a brewer in the Delaware River Watershed? Are you interested in joining in our efforts to keep the watershed clean?
Sign up online here! If you have questions, please reach out to Val Peckham at vpeckham@audubon.org.
Why Brewers for the Delaware River Association?
We need volunteers
You can volunteer with Audubon and help with our mission.
How you can help, right now
Help Support Audubon State
Birds need YOU! Get involved in helping to preserve our birds and their habitats today. There is something for everyone!
The Birds Need You
Find out ways to help birds in your area.
Help this endangered species
It needs your help
Our mission is to conserve and restore natural ecosystems, focusing on birds, other wildlife, and their habitats for the benefit of humanity and the earth's biological diversity.
National Audubon Society Legal Notices Privacy Policy Contact National Audubon


text:
Elisabeth Müller
Actress - Switzerland
Born July 18, 1926 in Basel
Died December 11, 2006 in Sempach
Elisabeth Müller was born on July 18, 1926 in Basel. She was a Swiss Actress, known for Gestehen Sie, Dr. Corda! (1958), Alle Tage ist kein Sonntag (1959), Geliebte Corinna (1958), Elisabeth Müller's first movie on record is from 1946. Elisabeth Müller died on December 11, 2006 in Sempach. Her last motion picture on file dates from 1984.
Biographical Notes in German: Schweizer Schauspielerin im Schweizer und Deutschen Kino der Vierziger und Fünfziger Jahre.
Elisabeth Müller Filmography [Auszug]
1984: [12.07] Der Alte - Die Tote im Schlosspark (Cast), Directed by Jürgen Goslar, with Beate Finckh, Alexander Hegarth,
1983: [01.20] Derrick - Das Mädchen in Jeans (Cast: Ursula), Directed by Theodor Grädler, with Herbert Fleischmann, Anja Jaenicke,
1960: [] Am grünen Strand der Spree (Cast: Babsy Bibiena), Directed by Fritz Umgelter, with Johannes Heesters, Friedrich Schoenfelder, Günter Pfitzmann,
1959: [08.12] Alle Tage ist kein Sonntag (Everyday's not sunday) (Cast: Eva Kende), Directed by Helmut Weiss, with Jochen Hanke, Jürgen Hanke,
1959: [] The angry Hills (Cast: Lisa), Directed by Robert Aldrich, with Stanley Baker, Gia Scala, Leslie Phillips,
1959: [02.19] Rommel ruft Kairo (Cast: Lt. Kay Morrison ), Directed by Wolfgang Schleif, with Adrian Hoven, Peter van Eyck,
1958: [] Gestehen Sie, Dr. Corda! (Cast), Directed by Josef von Baky, with Hardy Krüger, Marianne Prenzel, ,
1958: [/ /1] Geliebte Corinna (Cast: Corinna), Directed by Eduard von Borsody, with Alexander Kerst, Klaus Kinski,
1957: [/ /1] El Hakim (Cast: Lady Avon), Directed by Rolf Thiele, with Michael Ande, O.W. Fischer, Robert Graf,
1957: [] Taxichauffeur Bänz (Cast: Irma Bänz), Directed by Werner Düggelin, with Schaggi Streuli, Maximilian Schell,
1957: [/ /1] Skandal in Ischl (Cast), Directed by Rolf Thiele, with Ivan Desny, O.W. Fischer, Rudolf Forster,
1957: [02.20] Doktor Crippen lebt (Cast: Fleur Blanchard), Directed by Erich Engels, with Peter van Eyck, Katharina Mayberg,
1956: [/ /1] The power and the prize (Cast), Directed by Henry Koster, with Robert Taylor, Irene Papas,
1956: [03.29] Rosen für Bettina (Ballerina) (Cast), Directed by Georg Wilhelm Pabst, with Willy Birgel, Ivan Desny, Eva Kerbler,
1955: [09.08] André und Ursula (André et Ursula) (Cast), Directed by Werner Jacobs, with Walter Clemens, Denise Cormand, Ivan Desny,
1954: [/ /1] Das Bekenntnis der Ina Kahr (Affraid to love, The Confession of Ina Kahr) (Cast), Directed by Georg Wilhelm Pabst, with Curd Jürgens, Albert Lieven, Vera Molnar,
1954: [] Morgengrauen (Cast: Inge Jensen), Directed by Victor Tourjansky, with Hans Stüwe, Edward P. Merlotte, Renate Mannhardt,
1953: [/ /1] Moselfahrt aus Liebeskummer (Cast: Angela Schäfer), Directed by Kurt Hoffmann, with Erica Beer, Rudolf Reiff, Will Quadflieg,
1952: [////1] Der Tag vor der Hochzeit (Cast: AKA Lisabeth Müller), Directed by Rolf Thiele, with Joachim Brennecke, Paul Dahlke, Käte Haack,
1946: [04.17] Matto regiert (Madness rules) (Cast: Schwester Irma Wasem), Directed by Leopold Lindtberg, with Heinrich Gretler, , Walburga Gmür,
Filmography Elisabeth Müller nach Kategorien
The copyright lies with the authors of these quotes - Elisabeth Müller - Biography KinoTV Movie Database
More on Elisabeth Müller


Sun Woo and Jung Ryul investigates the evidences left behind by Joo Min, and know about the hidden meaning of the name of Choi Hui Gun, knowing that Choi Hui Goon is a member of Coast Guard Investigation 9, and stepping up effort to reveal the truth of Choi Hui Gun.
Meanwhile, Jung Ryul is meeting with NIS agent who has been secretly working in the black society for a long time behind Choi Hui Gun.
Sun Woo and Soo Yoon manage to trace the Choi Hui Gun of black society.


Hart was established as a business in 1937 by Charles Percival Hart.Working knowledge / qualification in 3D design packages (AutoCAD).You could fashion a stripped-back, industrial bathroom using simple brick-shaped wall tiles (Topps Tiles sells inexpensive metro tiles weathered flooring (Fired..
In our Intro to Water Marbling class, you will learn about the origins of marbling art and how it was applied in different cultures.Address: 276 Golden Gate Ave, San Francisco, CA 94102 The Start Choppin Woodworking series is a class..
Score spooky Halloween savings on everything from costumes and personalized gifts to dinnerware, wine, home decor, and more!
Order The All-New Fitbit Versa Now!
Expires 12/31/2018 CDT Sale Shop Valentine's Day Gifts backcountry coupon code december 2017 Shop Bed Bath Beyond to find amazing deals on Valentine's Day Gifts 2018!Select unusual craft gifts towels are on clearance, and can be yours for as low.99!Expires boots uk perfume gift sets 12/31/2018 CDT 40 off In-Store Offer 2 used today Up To 40 Off Wamsutta Bath Towels Now at select Bed Bath Beyond store locations, take up to 40 off Wamsutta Bath Towels!Verified, bed Bath Beyond is now offering a new beta program called beyond.Available while supplies last.2 Groupon Bucks 40 off Sale Coupon Verified!Expires 12/31/2018 CDT Sale Clearance Sale Free Shipping Get Free Shipping on all orders 29 and over at the Bed Bath Beyond Home Decor and Window Clearance.View Sale Used 2 times today.In-Store Offers Print out your coupon, or bring it up on the Groupon app, and present it to the cashier.
Get Offer, expires 10/31/18 Used 11 times today 90 Off Select Calphalon Sets 50 Giftcard.
Expires CDT Sale Coupon Verified!
Bed Bath Beyond has furniture and decor to fit every style and budget!
Now at Bed Bath Beyond, get up to 50 select kitchen appliances when you shop online or in-store!
50 off Sale Coupon Verified!From packing materials to installation service, Bed Bath Beyond goes above and beyond to help you save time and money when you move!View Sale, used 209 times today 20 Off Select All Clad Products.Sign Up Have more questions?Right now, get free shipping on any 29 order when you shop through this link today!Save up to 33 on slow cookers and multi cookers when you shop these deals today.
Sale Save On Wedding Invitations Plan for your big day in style and savings when you shop this special offer from Bed Bath Beyond!


text:
package io.reflectoring.coderadar.domain;

import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class FileTree {
  private String path;
  private List<FileTree> children;
}


text:
\section{Introduction}

The luminosity function (LF) of galaxies (that is, the probability
density of galaxies in a certain population of a given luminosity)
is one of the key observable quantities for galaxy evolution
theories (Binggeli, Sandage \& Tammann 1988), although the link between the
data
and the underlying physics is still not easily understood (Benson et
al.\ 2003). Galaxies in high density environments, such as rich galaxy
clusters,
can evolve rapidly (less than 1 Gyr) due to different physical
processes, e.g. harassment (Moore et al.\ 1996), ram-pressure stripping
(Gunn \& Gott 1972; Quilis, Moore \& Bower 2000), tidal effects and
mergers (Toomre \& Toomre 1972; Bekki, Couch \& Shioya 2001; Aguerri, Balcells
\& Peletier
2001) or starvation (Bekki, Couch, \& Shioya 2002). The LF should
reflect this important role of the environment in regulating galaxy
evolution. Recent results from large surveys (De Propris et al.\ 2003)
point towards the composite LF of cluster galaxies having a
characteristic magnitude that is approximately 0.3 mag brighter and a
faint-end slope (directly related to the ratio of dwarf to giant
 galaxies, D/G) that is
approximately 0.1 steeper than those found for field galaxies. As
hierarchical galaxy formation
theories predict the formation of large numbers of low mass halos, the
latter observational
evidence may indicate the existence of some mechanism that eliminates at
least the visible component
of galaxies in low density regions (Tully et al.\ 2002).

A2151 (the Hercules cluster), together with A2147 and A2152, forms part of
 the
Hercules Supercluster, one of the largest and most massive
structures
in the local Universe (Chincarini, Thompson \& Rood 1981; Barmby \&
Huchra 1998). The kinematical analysis of
Barmby \& Huchra (1998) reveals that A2151 and A2147 are probably bound
to each
other, and that the supercluster as a whole may also be bound. A2151
($z= 0.0367$) is an irregular and spiral-rich cluster ($\sim$ 50\%,
Giovanelli \&
Haynes 1985). There is strong evidence (from optical and X-ray
studies) suggesting that the cluster is still in the process of
collapsing: the lack of hydrogen deficiency in the spiral population
(Giovanelli \& Haynes 1985; Dickey 1997), the bumpy distribution of the
hot
intracluster gas and its low X-ray flux (Magri et al.\ 1988; Huang \&
Sarazin 1996), and
the presence of at least three distinct subclusters (Bird, Davis \&
Beers 1995, BDB hereafter). All this evidence indicates that  A2151 is
 a young and
relatively unevolved cluster, thus making it an excellent target for
studying the LF and establishing comparisons with more evolved
systems. Throughout this article we assume a value of $H_{0} = 75$ km
s$^{-1}$ Mpc$^{-1}$,
which puts A2151 at a distance of 147 Mpc.

The aim of this paper is to study the LF of A2151 down to the dwarf
regime,thus extending the previous work of Lugger (1986), who computed the $R$-band
LF of the cluster over a wide area (4.6 $\times$ 4.6 Mpc$^2$) but only down to
$M_R = -19.8$. The paper is arranged as follows: in Section 2 we describe the
observations
and data reduction procedures. Section 3 gives the details of the source
extraction and  star/galaxy
separation, and the estimate of the limiting magnitudes of the sample.
In Section 4 we present the
LF in A2151 and analyse possible variations of its parameters within
location in the cluster. Finally, Section 5 discusses the results.

\begin{table*}
      \caption[]{Log of the observations. Seeing values are averaged
from the four chips in each of the fields.}
         \label{log}
     $$
         \begin{tabular}{lccccc}
            \hline
            \noalign{\smallskip}
Field & R.A.$^{a}$ & Dec.$^{a}$ & Date & $t_{exp}$ & Seeing \\
      & (J2000) & (J2000) &      & (sec)     & (arcsec) \\
            \noalign{\smallskip}
            \hline
            \noalign{\smallskip}
Ce1  & 16:05:36.00 & $+$17:43:59.97 & 1999 June 06  & $2 \times 900$  &
1.2 \\
Ce2  & 16:05:23.99 & $+$17:27:59.97 & 1999 June 06  & $2 \times 900$  &
1.5 \\
\#2  & 16:06:12.56 & $+$18:10:56.15 & 2001 April 17  & $2 \times 900$  &
1.1 \\
\#4a & 16:02:00.00 & $+$17:55:43.11 &  2002 May 19  & $ 2 \times 900$  & 1.7
 \\
\#4b & 16:04:00.00 & $+$17:50:42.97 & 2002 May 19  & $2 \times 900$  & 1.6
 \\
Back & 15:39:13.99 & $-$00:13:01.07 & 2002 July 11  & $2 \times 1000$ & 1.7 \\
         \noalign{\smallskip}
            \hline
         \end{tabular}
     $$
\\
$^{a}$ Coordinates correspond to the centre of the WFC. See http://www.ing.iac.es/Astronomy/instruments/wfc/index.html for a detailed description of the spatial arrangement of the mosaic.
\end{table*}

\section{Observations and data reduction}

Observations were carried out with the Wide Field Camera at the 2.5 m
 Isaac Newton Telescope (INT), located at the Observatorio del Roque de
 los Muchachos during four different runs in the period  1999--2002.
 The WFC consists of four thinned AR-coated EEV 4k $\times$ 2k CCDs and a
 fifth one acting as an autoguider. The pixel scale is 0.33 arcsec
 pixel$^{-1}$, giving a total field of view of about 34 $\times$ 34
 arcmin$^{2}$. A
square area of about 11 $\times$ 11 arcmin$^{2}$ is lost at the top right
corner of the field due to the particular arrangement of the detectors.
The top left corner of Detector \#3 is also lost because of filter
vignetting.

We imaged a mosaic of five overlapping pointings covering a total
area of about 1.05 deg$^2$ ($\sim7.2~h^{-2}_{75}$ Mpc$^{2}$) in the
direction of the Abell~2151 cluster. The total exposure time for each
field was 2 $\times$ 900 s using the Harris $V$ broad-band filter.
A control field outside the Abell~2151 cluster was also observed in order
 to get the background galaxy counts with the same instrumental
 configuration as the cluster counts. Two 1000~s exposures were taken in the
 direction of the Landolt~107 field. The average seeing of the fields ranged
 between 1.1 and 1.7 arcsec, with a maximum value of 2 arcsec in one of
 the
 CCDs. Table~\ref{log} shows a detailed log of the observations.

Data reduction consisting of bias subtraction and flat-fielding was
carried out in the usual way using the IRAF reduction package.\footnote{IRAF
is distributed by the National Optical Astronomy Observatories,
operated by the Association of Universities for Research in Astronomy,
Inc., under cooperative agreement with the National Science Foundation.}
The images corresponding to the Abell~2151 field were calibrated using
aperture magnitudes of bright galaxies taken from Takamiya, Kron \& Kron
(1995) since no standard stars were available for the photometric
calibration (see Table~1). The differences between our calibrated magnitudes
and those of TKK95 for galaxies in our central field (computed within an
aperture of 17.5~arcsec radius) never exceeded 0.05~mag. Photometric zero
points for the remaining fields were calculated by cross-correlating
aperture
 magnitudes of common objects in the overlapping chips, for which we
 obtained a maximum dispersion of 0.18~mag at the faintest magnitudes. On the
other hand, the background field was accurately calibrated since several
standards from the Landolt~107 field (Landolt 1992) show up in the
different frames. All the $V$ magnitudes were corrected for
 Galactic extinction
using the Schlegel, Finkbeiner \& Davis (1998) dust maps and the
Cardelli, Clayton \& Mathis (1989) extinction curve.

\section{Data Analysis}

\subsection{Source extraction}

Identification and extraction of sources was carried out using the
automated code SExtractor
(for specific details see Bertin \& Arnouts 1996).
Objects are identified as every detection having a certain minimum area
and number counts above a limiting threshold
taking the sky local background as a reference. These limiting sizes and
fluxes were set to 36 pixels~\footnote{this corresponds to an
apparent size of 2 arcsec, which is the maximum seeing disc size
in our frames.} and twice the standard deviation
of the sky counts, respectively. More precisely, sources were extracted
using a background-weighted method, so that in every
case the threshold takes a local value. This avoids a lot of spurious detections in
the surroundings of bright galaxy halos and saturated stars, where the
local threshold is significantly increased. Careful visual inspection  of
the frames was carried out and all   definitely spurious entries were
 removed from the catalogues, such as H\ {\sc ii} regions of spiral
 galaxies, which fulfil all the above-stated requirements.

The separation between stars and galaxies was performed on the basis of the
SExtractor stellarity index (S/G hereafter). The code assigns a numerical value
 between 0 and 1 to all detections according to the following
 criteria: star-like objects have values close to 1 while galaxy-like objects
 are closer to 0. This S/G classifier behaves correctly for bright
 objects but breaks down at the lower magnitude end (especially in bad seeing
conditions), where a correct classification remains difficult.

 In order to test the reliability of the index we simulated artificial
 \emph{isolated}~\footnote{we stress this fact because the S/G
 classifier has more problems when classifying stars overlapping with
 other objects or lying in galactic halos.} stars and recovered them
 using SExtractor and the same selection criteria as for the
 Hercules fields. The stars were generated with the
 artdata.mkobjects package in IRAF and then added into frames
 reproducing the same sky counts and S/N ratio as the scientific ones. The PSF
 profiles were assumed to be Gaussian~\footnote{we also tried  with a more realistic
 Moffat function, but differences in limiting magnitude and S/G values
 were negligible.} and FWHMs spanned the values of our seeing
 conditions. A total number of 750 stars were simulated in the magnitude
range
17 $\le m_V \le$ 23 for two different seeing conditions (1.2 and
 2 arcsec FWHMs).

  \begin{figure}[t]
   \centering

   \includegraphics[width=9cm,height=7cm]{./1803fig1.ps}
      \caption{The aperture central surface brightness of all our detected
	objects as a function of apparent magnitude. Note the different location
	in the plot of stars and extended objects. The horizontal
	dashed line corresponds to the 2$\sigma$ isophotal detection
	limit used in SExtractor, which cuts the objects' distribution at $V \sim 21$
	(vertical dashed line), thus setting the limiting magnitude of the sample
	(see text for details).
	}
      \label{mu}
  \end{figure}

 The classification of star-like objects is
 easily done for good seeing frames (S/G $\ge 0.95$), whilst the
 S/G values span a wider range in worse
 conditions (S/G $\ge 0.85$ for simulated point-like sources
 brighter than $m_{V}=22.0$). Photometry in all the cases was
 almost perfect, with
 differences between input and recovered magnitudes of less than 0.05
 mag even for the faintest stars. As will be shown in Sect.\ 3.2.1,
 our limiting magnitude for cluster galaxies is $m_V \sim$ 21. Thus, we
 cautiously set a value  of S/G $\ge$  0.85 for the star-like
 objects in all the frames, which corresponds to the S/G value of
 simulated stars one magnitude fainter than our limiting magnitude. All
 the detections having 0.8 $\le$  S/G $<$ 0.85 were carefully inspected
by means of IMEXAM, along with bright saturated stars that tend to have lower
S/G values. Those detections with obvious stellar origin  were removed
from the catalogues. After this exercise we expect
the lowest contamination by stars possible, although perfect
\emph{cleaning} is almost unachievable
for the faintest magnitudes. There is a further concern about losing
compact dwarf galaxies as
 so-called ultra compact dwarfs (UCDs; Drinkwater et al.\ 2000), which
can assume a stellar appearance in ground-based images. However, these
galaxies typically
have intrinsic magnitudes much fainter ($M_B \sim -11$) than our limiting
 magnitude and the dwarfs we
are able to detect have low probability of being misclassified (see Sect.~3.2.1).

\subsection{Photometry}

\begin{figure}
   \centering
   \includegraphics[width=9cm]{./1803fig2.ps}
      \caption{Structural parameters of dE and dSph galaxies in the Virgo
 Cluster. The
	data are taken from Binggeli \& Jerjen (1998) (\emph{open circles}) and
Barazza,
	Binggeli \& Jerjen (2003) (\emph{open triangles}) while  filled squares
correspond
	to our simulated galaxies. The object at the top left represents a de
	Blok LSB
	galaxy with an exponential disc profile and a scale-length of 3 kpc.
	}
      \label{Sersicparams}
   \end{figure}

\begin{figure*}
   \centering
   \includegraphics[width=14cm,height=11cm]{./1803fig3.ps}
      \caption{Detection efficiency (\emph{solid line}) for each of our
        simulated galaxy models.
	From left to right and top to bottom: n  =1 with $r_e$ = 0.75, 1.5, and
        3 kpc, and the n = 2 with
	$r_e$ =  0.5 kpc model. The shaded regions in the lower panels
	indicate differences between
	recovered and input magnitudes, which never exceed 0.3 mag.
	}
      \label{simsdetection}
   \end{figure*}

\subsubsection{Sample completeness}

One of the key problems in the study of LFs is  knowledge of
detection limits and completeness of the data. In order to make this
estimation we followed two different approaches.

First,  for all our detected objects we computed the mean central surface
brightness ($\mu_{app}$) measured in
a circular aperture of area equal to the minimum detection area used in
SExtractor. Figure~\ref{mu} shows $\mu_{app}$ as a function of apparent
magnitude for all the detected sources (stars and  galaxies). Stars occupy
the upper diagonal locus, with saturated objects defining the flat region of
the distribution. Galaxies are located in the lower-most broader region of the plot.

The different locations of point-like and extended objects is evident at bright
magnitudes ($m_{V} \le 18$), while the effects of seeing make
 this distinction at fainter magnitudes difficult. We have computed the
 2$\sigma$ isophotal detection limit used in SExtractor, which
 corresponds to $\mu =26.15$ mag arcsec$^{-2}$ (horizontal dashed line
 in Fig.~\ref{mu}). Given the
 distribution of the objects in Fig.~\ref{mu}, $m_{V} \sim 21$ appears to
 be the appropriate limiting magnitude of our sample, as we do not
 lose objects because of their low surface brightness.

Secondly, we simulated artificial galaxies and, as we did with stars,
placed them in frames with conditions (seeing, S/N) identical to the
scientific ones, in order to recover them with SExtractor. We generated
galaxies with two different morphological types and
different intrinsic half-light radii (one exponential profile with
$r_{e}$ = 0.75, 1.5 and 3 kpc, and one S\' ersic profile (S\'ersic 1968)
with n = 2 and
$r_{e}$ =  0.5 kpc) in the magnitude range 17 $\le m_V \le$ 23 ($-$18.85
$\le$
$M_V$ $\le$ $-$12.85) and with three different axial ratios (0.3, 0.6, and
0.9). A total number of 1500 galaxies were generated for each of the
morphologies in order to get enough statistics.
The choice of these models was motivated by the quantitative morphological
studies of the populations that are supposed to dominate the faint-end of
 the LF in
nearby clusters (dE and dSph mainly), which show that these galaxies
lie in a well defined region on a $r_{e}$ vs.\ n
plot. Figure~\ref{Sersicparams} shows structural parameters of dE and
dSph galaxies in the Virgo Cluster taken from Binggeli \& Jerjen
(1998) and Barazza, Binggeli \& Jerjen (2003) (open circles and open
triangles, respectively), while filled squares correspond to our
artificial galaxies. Objects with larger effective radii are known to
present
fainter surface brightness, which renders their detection difficult. For this
reason we modelled one object with n = 2 and $r_e$ slightly larger than those
observed and another galaxy with n = 1 and $r_e$ =  3 kpc; the
latter are typical
parameters of the low surface brightness (LSB) galaxies studied by de Blok et
 al.\ (1995).
Note (see Fig.\ 2) the apparent lack of this kind of galaxy in this
Virgo sample. LSB galaxies are
known to be the most unstable systems during cluster evolution,
suffering from rapid encounters and strong tidal shocks (harassment,
see Moore et al.\ 1999), therefore rare in relaxed clusters.
 However, as mentioned, the Hercules cluster is still
in process of collapse and harassment might have produced little
effect on such a kind of LSB. On the other hand Andreon \& Cuillandre
(2002)
show that a large population of low surface brightness galaxies
dominate the
LF in Coma, representing the main contribution at faint magnitudes.
As it is not obvious which kind of galaxy is the predominant one in the
cluster environment,
we cautiously set the limiting magnitude of the lowest surface brightness
 model as our sample limit.

The results of our simulations are summarized in
Fig.~\ref{simsdetection}, where we plot the fraction of recovered
galaxies ($N_r/N_i$) vs.\ input apparent magnitude (as given by
MAG\_BEST) for each galaxy type (solid lines); shaded regions
correspond to recovered magnitude differences, which are always below
0.3 mag. We find that the detection and estimate of magnitudes are less
accurate for galaxies with larger effective radii than smaller ones.
Within each of the morphological types, edge-on galaxies
are more easily detected than face-on ones, but the differences are small
enough that we could focus our analysis on averaged numbers. All these
results were expected, for it is widely known that detection
limits strongly depend on the interplay between magnitudes, effective
radius and inclination. The recovered S/G parameters for the simulated
sample were always smaller than 0.75. From Fig.~\ref{simsdetection} it
is apparent that detection efficiencies strongly depend on the
structural parameters of galaxies.

Our limiting magnitude, as derived from the $\mu_{\rm app}-m_{V}$
relation, is
$m_V \sim$  21 ($M_V \sim -14.85$ at A2151 distance). From the
simulations, this value ensures that our sample
is at least  80\% complete, with the worst case that of LSB
galaxies.  In order to construct the LF of A2151, only objects brighter
 than this limiting magnitude were considered.

\subsection{The control field}

The most reliable method for computing deep LFs of cluster galaxies in
our type of survey is by means of a statistical subtraction of
background/foreground number counts from a control field, since the
spectroscopic information is usually limited to the brightest galaxies.
\footnote{Redshift data in the Supercluster are only complete down to 15.1 mag,
see Barmby \& Huchra (1998).} It should be noted that the selection of the
control field is critical, for the final results derived from the LF
strongly depend on this choice. The selected field must fulfil the
requirement that the area is large enough so the cosmic variance and
number count statistics, the main error sources in LF
determination, are minimized. We imaged the SA107 ($\alpha =  15^h
39^m 12^s$, $\delta = -00^{\mathrm{o}} 19' 60''$) flanking field for
these purposes, where the presence of photometric standards provided
us with high photometric precision for the background counts. In
    order to ensure reliable subtraction, the background field
    should contain a population of objects similar to that of the cluster. We
    checked this by constructing a plot like the one in Fig.~\ref{mu},
with the result that the population of objects in the background and in our
cluster fields were similar. The number counts in this field are
plotted in Fig.~\ref{back_counts}, together with other $V$-band counts taken from
 different sources in the literature.\footnote{The data from the MGC of
 Liske et al.\ (2003) were transformed from the $B$-band using their average $B-V$
 =  0.94.} The fair agreement between these counts, each
 taken with different instrumentation under distinct conditions, makes us
 confident that the resulting LF derived by subtracting our control field counts
is significant, with the advantage of having been
 obtained under the same instrumental set-up as the cluster counts.

\begin{figure
   \centering
   \includegraphics[width=9cm]{./1803fig4.ps}
      \caption{Background galaxies number counts in the SA107 field
      (\emph{filled circles}), compared
	with other sources in the literature. The limiting magnitude of LSB
	galaxies in
	the A2151 sample is marked with the dotted vertical line.
	}
      \label{back_counts}
   \end{figure}

\begin{table*}
      \caption[]{Best-fit values for the radial LF of A2151. The
      quantities denoted by $k$ are derived from an exponential fit to the
      faint-end
 of each LF. The columns correspond to the values derived for the three
 Schechter parameters, those obtained for the exponential parameters, the
 number of galaxies ($N_{\rm gal}$) used in the computation of each LF and its
D/G ratio.
}
         \label{radialparams}
     $$
         \begin{tabular}{lcccccccc}
            \hline
            \noalign{\smallskip}
Region & $\alpha$  & M* & $\phi^{*}$ & $\chi_{\nu}^{2}$ & $\alpha_{k}$ &
$\chi_{k}^{2}$ & N$_{gal}$ & D/G\\
            \noalign{\smallskip}
            \hline
            \noalign{\smallskip}
$r~\le~r_{c}$                    & $-1.22 \pm 0.12$ & $-22.29 \pm 2.09$ &
 $149 \pm 149$ & 0.77  & $-1.18 \pm 0.06$ & 1.25 & 735 & 3.54 $\pm$ 0.76\\
            \noalign{\smallskip}
$r_{c}~<~r~\le~(r_{c}+r_{v}$     & $-1.26 \pm 0.09$ & $-21.82 \pm 0.49$ &
 $42 \pm 18$ & 0.53  & $-1.26 \pm 0.11$ & 0.96 & 5575 & 3.91 $\pm$ 0.78\\

            \noalign{\smallskip}
$(r_{c}+r_{v})/2~<~r~\le~r_{v}$  & $-1.27 \pm 0.12$ & $-20.63 \pm 0.50$ &
 $65 \pm 33$ & 0.59  & $-1.21 \pm 0.05$ & 0.29 & 4248 & 7.05 $\pm$ 1.58\\

            \noalign{\smallskip}
$r~>~r_{v}$                      & $-1.47 \pm 0.26$ & $-21.63 \pm 4.40$ &
 $13 \pm 39$ & 0.76  & $-1.32 \pm 0.13$ & 0.41 & 2466 & 12.09 $\pm$ 5.11\\
            \noalign{\smallskip}
            \hline
         \end{tabular}
     $$
   \end{table*}

\begin{table*}
      \caption[]{Best-fit values for the LF of A2151 and the three
      studied subclusters.}
         \label{subparams}
     $$
         \begin{tabular}{lcccccccc}
            \hline
            \noalign{\smallskip}
Region & $\alpha$  & M* & $\phi^{*}$ & $\chi_{\nu}^{2}$ & $\alpha_{k}$ &
$\chi_{k}^{2}$ & N$_{gal}$ & D/G\\
            \noalign{\smallskip}
            \hline
            \noalign{\smallskip}
Global & $-1.29^{+0.09}_{-0.08}$ & $-21.41^{+0.44}_{-0.41}$ & $47 \pm 14$
 & 0.78  & $-1.24 \pm 0.09$ & 0.54 & 13024 & 5.13 $\pm$ 0.82\\
            \noalign{\smallskip}
A2151C & $-1.26 \pm 0.08$ & $-21.78 \pm 0.51$ & $70 \pm 29$ & 0.66  &
$-1.17 \pm 0.04$ & 1.54 & 3380 & 3.95 $\pm$ 0.69\\
            \noalign{\smallskip}
A2151N & $-1.16 \pm 0.17$ & $-22.37 \pm 2.23$ & $54 \pm 55$ & 0.21  &
$-1.15 \pm 0.08$ & 0.26 & 1880 & 2.63 $\pm$ 0.75\\
            \noalign{\smallskip}
A2151S & $-1.59 \pm 0.10$ & $-23.05 \pm 2.01$ & $8 \pm 11$ & 0.43
& $-1.65 \pm 0.19$ & 0.55 & 687 & 9.38 $\pm$ 3.21\\
            \noalign{\smallskip}
            \hline
         \end{tabular}
     $$
   \end{table*}

\section{The Luminosity Function}

The luminosity function of galaxies in A2151 was computed as the
statistical difference between the counts in the cluster and control field
samples. Once again we stress that final results obtained for the LF
will strongly depend on the galaxy counts used for foreground/background
decontamination. Thus, in order to minimize this influence, we used
large bin widths (1 mag) compared to photometric uncertainties (see Sect.\
2 and Sect.\ 3.2.1), and checked that galaxy counts in the SA107 field
remained stable from chip to chip.

\begin{figure}
   \centering
   \includegraphics[width=9cm]{./1803fig5.ps}
      \caption{Total luminosity function of A2151 down to {$m_{V}$} = 21
      (asterisks), with best-fit Schechter function
	(\emph{solid line}) also overplotted. The dashed line corresponds to the
 best fit to an exponential
	function for the faint-end of the LF ($-18.85 < M_{V}  < -14.85$).
	 Error bars include
	both Poissonian and non-Poissonian fluctuations of counts. The inset
	shows the 1, 2 and 3$\sigma$
	contour levels for the best-fit Schechter parameters (indicated by the
cross).}
      \label{A2151LF}
   \end{figure}

Following Huang et al.\ (1997), errors from both Poissonian and
non-Poissonian fluctuations of counts have been taken into account.
Inclusion of this cosmic variance points to the fact that background
counts in the cluster line of sight are not \emph{exactly} those in
our control field. This error source affects both the cluster and
control field samples (Andreon \& Cuillandre 2002). Our final error bars
include this latter term, along with both the contribution of photometric
error of the zero point and the Poissonian uncertainties of both samples.
For simplicity, all these sources were added in quadrature despite of
their different nature.

After background galaxy counts subtraction, the data were fitted to a
Schechter function (Schechter 1976):

\begin{equation}
\label{eq:schechter}
\phi(m_{V}) = \phi^{\ast} \times [10^{0.4(m^{\ast} - m_{V})}]^{\alpha +1}
e^{-10^{0.4(m^{\ast} - m_{V})}}.
\end{equation}

{\flushleft{Our fitting algorithm minimizes the $\chi^{2}$ by taking errors
into account and assigns a statistical weight to each of the points
(1/$\sigma_{i}^{2}$, where $\sigma_{i}$ corresponds to its error term).}}

In Fig.~\ref{A2151LF} we plot our LF for the total area covered in
this study down to $m_V =$  21 mag. We find that the Schechter function is
a good representation of the LF in A2151 ($\chi_{\nu}^{2} =$  0.69)
with best-fit parameters $\alpha = -1.29^{+0.09}_{-0.08}$~, M$_{V}^{*}  =
-21.41^{+0.44}_{-0.41} $ and $\phi^{*} = 47 \pm 14$.

In order to make a better estimate of the faint-end slope of the LF, we
fitted our data to an exponential function of the type $\sim 10^{km}$
where $m$ are magnitudes and $k$ is related to the $\alpha$ parameter of the
Schechter function by the following expression:

\begin{equation}
\label{eq:alphapot}
\alpha = -(k/0.4 + 1).
\end{equation}

{\flushleft{We derive a best-fit value of $k = 0.095 \pm 0.036$ ($\chi_{\nu}^{2} =$
 0.54) in the magnitude range $-18.85 < M_{V}  < -14.85$, which
 corresponds to $\alpha_{k} = -1.24 \pm 0.09$ and is thus  consistent with the
value derived from the Schechter function.}}

Lugger (1986) computes the $R$-band LF of A2151 in a region 4.6 Mpc a
side, but only down to $M_{R} \sim -19.8$, which is approximately five
magnitudes brighter than our limit. She derived a value of $\alpha =
-1.26 \pm 0.13$, similar to ours despite of other big differences
between both studies: photographic plates vs.\ CCD images, different
surveyed areas and limiting magnitudes, different bands.

It is well known that the $\alpha$ and M$^*$ parameters of the Schechter
function show a high degree of
correlation (Schechter 1976), so that their values and errors are coupled.
In order to avoid this effect, we
computed the dwarf to giant ratio (D/G) in A2151 from the LF itself.
Dwarf galaxies were defined as those
having magnitudes $-18 < M_B < -14.15$, while giants were those
brighter than $M_B = -18$. The transformation
to $B$-band magnitudes was carried out using the average $B-V = 0.7$ for
galaxies in nearby clusters in the GOLDMine
database (Gavazzi et al.\ 2003). We obtained a value of D/G = 5.13 $\pm$
 0.82 over the whole surveyed area. Errors
were computed using a Monte Carlo method, generating 100 LFs uniformly
distributed within the
1$\sigma$ uncertainty region, and then computing the D/G for all of them.
The final error was taken as the dispersion
of this distribution.

In the following subsections we investigate the dependence of the LF on
environment within the cluster.

\subsection{Radial Analysis of the LF}

The dependence of the LF on the cluster region has been studied by
several authors, mainly for nearby clusters (but see Andreon 2001 and
Pracy et al.\ 2004 for this kind of study at intermediate redshift
clusters). The pioneering work of Lugger (1989) shows that the faint-end of
the LF tends to be flatter in high-density regions than in low-density
regions. More recently, various authors have claimed the faint-end slope is
steeper as we move outwards within the cluster than in the inner regions (e.g.\
 Sabatini et al.\ 2003 for Virgo, Beijersbergen et al.\ 2002 and
 Iglesias-P\'aramo et al.\ 2003 for Coma). Independent studies (Aguerri et al.\
  2004)
have shown that the core of the Coma Cluster is indeed dwarf-depleted
when compared with the outer regions, giving rise to the observed steepening.

We therefore wanted to explore this trend in A2151. For this purpose, we
divided our area in four different annuli from inside the core radius,
$r_c$,  to outside the virial radius, $r_v$ (0.24$h^{-1}$ Mpc and 1.5$h^{-1}$
Mpc respectively, see Girardi et al.\ 1998) and computed their LFs.
As the X-ray emission from the cluster shows a very irregular and bumpy
structure, the cluster centre was assumed coincident with the optical
centre of mass ($\alpha = 16^h 05^m 26^s$, $\delta = 17^{\mathrm{o}} 47'
50''$) derived by Tarenghi et al.\ (1980). A summary of the results is
listed in Table~\ref{radialparams}, where it can be seen that there is a
tendency of increasing faint-end slope as we move outwards in the cluster.
However, the large  uncertainties in the $\alpha$ parameter do not allow
us to claim this trend with significance. It is worth noticing that the
$M^*$ parameter is highly unconstrained in both the innermost and outermost
 annuli, showing that these LFs are better described with an exponential
function rather than with a Schechter one.  Because of the limited
statistics (small area covered), the number counts of background objects become
 almost equal to  A2151 counts in the most external region, so that the
 LFs in the outermost annuli suffer from small number statistics, leading
 to large errors in  slope determination. These cases are where
 non-parametrical estimation of the D/G ratio provides a more robust
 study of luminosity segregation.

\begin{figure}
   \centering
   \includegraphics[width=9cm]{./1803fig6.ps}
      \caption{\emph{Top}: dwarf to giant ratio (D/G) vs.\ projected
      clustercentric distance. Errors were computed by a
	Monte Carlo method.
	\emph{Bottom}: Radial surface density of dwarf (\emph{solid + diamonds})
 and giant galaxies (\emph{dotted + triangles}).
	Note that the increasing D/G as we move outwards in the cluster is due
	to a more rapid decrease in the giant population,
	while dwarf galaxies show a more extended distribution.
	}
      \label{D2G}
   \end{figure}

We computed the radial dependence of the D/G ratio in these four annuli
as in Section 4. The result is plotted
in the upper panel of Fig.~\ref{D2G}, where the aforementioned
trend of increasing D/G ratio as we move outwards within the cluster is
apparent. In order to determine the origin of this
increase, we analysed the radial density profiles of the dwarf
and giant populations within A2151. The lower panel of Fig.~\ref{D2G}
shows that the variation is mainly due to a
more rapid radial decrease in the giant population (dotted line +
triangles), while dwarf galaxies (solid + diamonds)
present a more extended distribution (flatter profile). It is also clear
from Fig.~\ref{D2G} that in the core of A2151, dwarf
galaxies follow the same behaviour as the giant population so that it
appears not to be dwarf-depleted.
Lugger (1989) studies the radial dependence of the LF in A2151 by
computing it in different annuli out to 1.2 Mpc from the cluster
centre. She finds that all LFs were consistent with that of the global
cluster, so that no significant variation was evident. Her
result is easily understood if we take into account that we are only able
 to establish a trend of increasing D/G despite of reaching
much deeper magnitudes.

\begin{figure
   \centering
   \includegraphics[width=8.5cm]{./1803fig7.eps}
      \caption{Dwarf to giant ratio as a function of the projected local bright
	galaxy density. The data were binned in $\rho$ to show the relation
	more clearly.
	}
      \label{dg}
   \end{figure}

\begin{figure
   \centering
   \includegraphics[width=8.5cm]{./1803fig8.eps}
      \caption{LF of galaxies in each of the subclusters (North to south
from top to bottom).
	Solid lines are best-fit Schechter functions, while the faint-end slope
has also been fitted
	to an exponential function (\emph{dashed lines}). The insets show the 1,
 2 and 3$\sigma$ contour
	levels for the best-fitting Schechter parameters.
	}
      \label{A2151_subs_LF}
   \end{figure}

\subsection{D/G ratio as a function of local galaxy density}

Phillips et al.\ (1998) pointed out the existence of a relation
    between the population of dwarf galaxies in a cluster and the
    local density,  analogous to the
    morphology--density relation established for bright galaxies by
    Dressler (1981). This relation implies that dwarf galaxies are
    more common in lower density environments, and is valid for both local
    and medium redshift galaxy clusters (Pracy et al.\ 2004).

We computed the D/G ratio as a function of the projected local
density ($\rho$) for
A2151 (see Fig.~\ref{dg}). The D/G were calculated by computing the
number
of dwarf galaxies within a circle of radius equal to the distance to
the 10th nearest giant (bright) galaxy. Giant and dwarf galaxies were
defined as in Section 4. The areas for the computation of $\rho$ were
calculated  numerically in order to take the gaps and
overlapping regions in the mosaic into account. Field subtraction was performed
using the counts in the SA107 background field.

It is to be noted from Fig.~\ref{dg} that the projected local
density in A2151 is not as large as in other nearby rich clusters such as
Coma (Trujillo et al.\ 2002). However, our data cover a wide local
density range, reaching the outermost regions of the cluster where
densities are very low. Figure~\ref{dg} also shows that the dwarf
galaxy density relation is only marginal in A2151, with
dwarf galaxies slightly more numerous at lower densities. This
relation is as significant as that derived by Phillips et
al.\ (1998), but not as clean as the one recently derived by Pracy et al.\
(2004)
for A2218.

\subsection{Subclustering}

In Fig.~\ref{Xmap} we show the X-ray map of the central part of A2151 as
observed with {\itshape ROSAT} (grey-scale distribution), together with
the luminosity-weighted galaxy density contours (figure taken from Huang
\& Sarazin 1996). This figure clearly
shows that A2151 exhibits substantial subclustering with at least three
distinct subclusters identified in the dynamical
analysis of BDB. In our mapping, we cover two of them (A2151N and A2151C,
 see Fig.~\ref{Xmap}) while A2151E is out of our survey.
However, as can be seen from the luminosity-weighted galaxy density
contours, a fourth overdensity
(namely A2151S) seems to exist in the southernmost region of the cluster,
 though it was not identified as a distinct entity by the
KMM algorithm of BDB.

\begin{figure*}
   \centering
   \includegraphics[width=14cm]{./1803fig9.eps}
      \caption{X-ray emission from A2151 (grey-scale distribution)
      plotted together with galaxy density
	contours (taken from Huang \& Sarazin 1996), showing the significant
	substructure present in this
	cluster. The LF presented in this paper is computed in the region
	within the solid lines, while the smaller squares (dashed and dotted
	lines)
	indicate the areas where subclusters' LF were computed.
	}
      \label{Xmap}
   \end{figure*}

\begin{figure}
   \centering
   \includegraphics[width=9cm]{./1803fg10.ps}
      \caption{ 68\% and 95\% confidence contours for the best-fit
      Schechter parameters of A2151N
	(\emph{dotted}), A2151C (\emph{solid}) and A2151S (\emph{dashed}). It
	can be seen that the characteristic magnitude
	$M^*$ is highly unconstrained in the northern and southern subclusters.
	The crosses mark the best-fit values in each region.
	}
      \label{A2151_contours}
   \end{figure}

As we have shown that the radial LF steepens slightly in the outer
regions, we computed the LFs of A2151N, A2151C and (partly)
A2151S in the areas delimited by the small squares (dashed and dotted
lines) in Fig.~\ref{Xmap} in order to look for variations among the
subclusters.

The results of such analysis are shown in Table~\ref{subparams} and
in Figure~\ref{A2151_subs_LF}. We find that there is a
tendency towards $\alpha$ increasing from the northern to the southern
subcluster, although this difference is less significant than
2$\sigma$ (see Fig.~\ref{A2151_contours}). From this figure it is also
evident that $M^*$ is highly unconstrained in A2151N
and A2151S, which means that an exponential law provides a better
description of their LFs. With respect to the central subcluster,
its LF presents parameters similar to those of the global LF, revealing
that A2151C might be its major contributor.

As for the radial LFs, we computed the D/G ratio in the three
subclusters to confirm that A2151S shows the largest
ratio of all of them (see Table~\ref{subparams}). A more detailed
inspection of its LF points out that the cause of this enhancement is an
increase in the
population of faint galaxies in the southernmost subcluster with
respect to the others.

\section{Discussion and conclusions}

We studied the LF of galaxies in A2151 following four different
approaches: the analysis of the global LF, its radial variation, and the
dependence
with subclustering and local density.

The global LF of galaxies in the cluster exhibits a non-flat faint-end
slope ($\alpha = -1.29$). This is not in line with recent results
by Valotto et
al.\ (2004), who claim that clusters with significant X-ray emission (that
 of A2151 or greater) present flat
LFs ($\alpha \simeq -1$) while steeper slopes are due to projection
effects in non X-ray emitting clusters. In the literature there are
few measurements of the LF of cluster galaxies in the $V$-band. It is
important to compare results from the same bandpass, because the
parameters of the LF are known to change with wavelength
(Beijersbergen et al.\ 2002). Considering clusters in the nearby
Universe, Lobo et al.\ (1997) study the $V$-band LF in the
central part of Coma, and find a faint-end slope $\alpha_V = -1.59$,
significantly steeper than our value for A2151. However, this result
has been challenged recently by other authors (Beijersbergen et al.\ 2002 ;
 Iglesias-P\'aramo et al.\ 2003; Mobasher et al.\ 2003). At
intermediate redshift, Mercurio et al.\ (2003) analyse the LF of ABCG209
at $z = 0.21$ and find $\alpha_R = -1.20$, which is consistent with
the value presented in this paper.\footnote{It should be noticed that at
$z \sim 0.2$ the rest-frame $V$-band is redshifted almost to $R$.} In
another recent paper, Pracy et al.\ (2004) compute the LF of the $z =
0.18$ cluster A2218, finding a somewhat steeper slope of $\alpha =
-1.38$, still compatible with ours within the errors. Indeed, comparisons of LFs
of clusters at different redshifts and distinct evolutionary
states raise the problem of the possible evolution in time of galaxies in the
cluster, but we simply intend to point out that the values presented in this paper
are similar, within the errors, to those found for other clusters in
different global conditions.

The radial LF of A2151 shows a trend of increasing faint-end slope as we
move outwards in the cluster.
 Similar results were obtained in other clusters,
 where the slope increases even more significantly towards the outermost regions
(Sabatini et al.\ 2003; Andreon 2001; Mercurio et al.\ 2003;
Beijersbergen et al.\ 2002). This has usually been explained
as dwarf galaxies being destroyed in the inner parts of the clusters,
though it is important to notice that $\alpha$ (or the D/G ratio) can
vary due to changes both in the dwarf or/and giant population.
We have therefore computed the number of dwarf and giant galaxies as a
function of the
projected radial distance to the centre of A2151. The dwarf galaxy
population in A2151 has a more extended
distribution than giant galaxies, resulting in an increase of the D/G
ratio as we move outwards.

Alternatively, we investigated the relation between the D/G
    ratio and the projected local giant galaxy density. As expected,
    we  found
    that A2151 has more dwarf galaxies in the lower density
    environments, but this relation is found to be only marginal.

The LFs of the three studied subclusters present dissimilar values of
$\alpha$. Although this difference is only marginally significant (less
than
2$\sigma$), there is a trend of the faint-end slope to increase from the
northern to the southern subcluster, where faint galaxies are more
abundant than in the other two subclusters.

We plan to extend this study in the future to the rest of the Hercules
Supercluster, where the environment
should clearly reveal its influence. The combination of this data with
morphologies and velocities for cluster members will help us
to shed light on the evolutionary status of galaxies within the
Supercluster.

\begin{acknowledgements}
This work has made use of the NASA/IPAC Extragalactic Database (NED)
which is operated by the Jet Propulsion Laboratory,
California Institute of Technology, under contract with the National
Aeronautics and Space Administration. The INT is operated
on the island of La Palma by the ING group, in the Spanish Observatorio
del Roque de Los Muchachos of the Instituto de
Astrof\'\i sica de Canarias. This work has made use of the ING data
archive in Cambridge and of the ING service programme at ORM.
This paper has been funded by the Spanish DGES, grant AYA2001-3939. RSJ
acknowledges support from the Academia Canaria de Ciencias.
\end{acknowledgements}

redpajama_set_name: RedPajamaArXiv


The Bahamas is an independent state located in the West Indies. The Bahamas comprise an archipelago of about 700 islands and form a point southeast of Palm Beach, Florida, to a point off the eastern tip of Cuba.
Providence. The only other large town is Freeport (1980, 24,423), on Grand Bahama.


There are few articles, but none that seemed right to me. Some were too glorified (plastic surgery is not for everyone). Some were out of date. Some were interesting but incomplete. So, since no one else had done it, I decided that I had to do it, for you, so that you could know as much as you want to know about your surgery—and go back and study the information — before your operation overseas or in your home country.
This Blog will also see you through your recovery period. No one really believes the surgeon when he tells them that time is necessary after cosmetic surgery to let swelling diminish, scars fade, and final results appear. This Blog takes you through your healing period so that you can know when you are healing like everyone else and when you may not be, and what to do about it.


Knowing Microsoft, I knew obtaining this probably wasn't going to be as easy as back in the old Win32 days, where there was a simple API like GetSysColor(COLOR_ACTIVECAPTION), but I still had hopes that it wasn't going to be too difficult.
OK; it looks manageable, except in FPC, we don't have access to any of those namespace compiler definitions. Which are leveraged for everything. So this isn't going to be straightforward. Someone else must have solved this problem though, right? If not for FPC, then for Delphi? After an hour of Googling… no, I don't think the source code exists for this in Pascal anywhere on the internet.
Allright. I've used COM before. So let's get started! I'll go into a lot of detail, because there's a good chance there's someone out there that wants to take this code and port it to yet another language that has no code sample! For those that just want the results, download the source code at the end.
Here, for the first time, I actually got lucky. The IUISettings interface contains a whole bunch of functions and new types (you can see them here on Github, starting at line 699), and normally to define the interface you need to translate all of them. However, Microsoft added extra functionality in newer versions of the interface, IUISettings2, IUISettings3 and IUISettings4, and it so happens that the only function we need GetColorValue, is in IUISettings3 – and it's the only function in that interface! This makes translation trivial, and we now have all the definitions we need.
Well, obviously it's a wrapper for an HSTRING. What's an HSTRING? It's how the Windows Runtime manages strings (because there weren't enough string types already). For FPC's purposes, they're equivalent to Handles. The function we need to call in step 3, ActivateInstance(), takes an HSTRING as it's first parameter.
For space, I'll leave out the usual calls to LoadLibrary and GetProcAddress; they're included in the full downloadable source code at the end of this article. Now we have some functions we can use to obtain HSTRINGs from PWideChar strings (which are FPC-native), what do we actually populate the HSTRING with? What's this – RuntimeClass_Windows_UI_ViewManagement_UISettings ?
Getting closer to the action… now we've got the HSTRING, and we've got the interfaces we want to populate. But what is this wf::ActivateInstance() call?
// ALL ERROR checking omitted - refer to source code at end of article!
// ..use our UISettings object!
Accent is the TUIColorType enum we defined earlier; if you're lazy, you can replace this with the magic integer 5. Color is the same type as Windows' GDI Color: a dword, in BRGA format.
If you've been following along, you should be able to build a working sample from the above code, but if you run it, it won't be quite perfect. It'll work, and you'll get an actual color value, BUT your program will exception out with an Access Violation when your IUISettings interface variable leaves scope.
Option 3 (using an FPC Unit's initialization/finalization sections) works just fine too – and I'd probably use that if I was going to statically link to the WinRT DLLs; but with Dynamic Linking, I chose to keep everything self-contained within a function instead.
Side note: If you have a smarter way of trying to prevent FPC from generating the spurious finalization call, I'd love to hear it!
Because I couldn't find an FPC version of this code anywhere else on the internet, I've made the smallest possible working code sample available too (tested with FPC 3.0.4). Here's the source code and a compiled demo download. (18.6KB).
Well it's been a year between major updates (I seem to get the most time to work on this over Christmas/new years), but a new version of the Five Hundred is almost ready and will be released in the next few days.
In the background, there is a lot of work towards making an online multiplayer mode however I'm suffering from lack of people to test this with. It's not far away, though!
Consider the following code, which might be part of a custom Font class to draw fancy text.
OK, at this point the function's invocation is no longer readable by itself. Worse, no matter how many times you use it, you're bound to forget the order of those parameters occasionally. I should know, the above function was ripped directly out of my old custom bitmap-font based class. But when I needed to add wordwrapping and other alignment options, it needed to go.
In general, if the meaning of a boolean parameter isn't made totally obvious by the function name, it might not be the most readable solution. One of the golden rules of programming: it's harder to read code than to write, so any extra effort to make it easier to read later is time well spent.
It's a little bit more setup, but you (and anyone else reading your code) will thank you if you take the time to implement a set. (if your language doesn't support sets, constant values achieve the same result, but are very slightly less readable, and also don't protect you against invalid values being passed).
It's instantly obvious what the invocation does; no need to look up parameters. A bonus feature is the set of available styles can easily be extended without breaking any existing code.
The main downside is that it's harder to generate set values inline compared to boolean functions, so if the parameters to your particular method tend to change depending on conditional evaluation, it can be a bit of a pain. But in this example, the readability benefit is worth the extra effort during declaration.
Let's set up a situation with a problem, and look at different solutions for addressing the problem. Which one do you think is best, and more importantly, why?
There is a multithreaded application, which offloads work items to a worker thread, and uses TEventObject.SetEvent call to signal to the main thread "hey, all done". Note: the worker thread doesn't just complete this one task and then exit; it instead sleeps until another work item is generated.
We want the main thread to wait for either a Windows message to be received, OR for the worker thread's event to be signalled. Win32 provides a handy function for doing exactly this: MsgWaitForMultipleObjects with the event object's handle and with QS_ALLINPUT as the wakemask.
However, FPC's implementation of TEventObject doesn't expose the OS handle, so we can't call Win32 functions on it. (TEventObject inherits from THandleObject, whose reason for existance is encapsulating an operating system handle, however it's actual "Handle" property is a pointer and the documentation explicitly states TEventHandle is an opaque type and should not be used in user code).
From looking at the actual implementation of TEventObject, you can determine that the Windows Handle needed is the very first member of the structure pointed to by the "Handle" property, however.
TEventObject.WaitFor() is clearly the intended usage, however that would block on that event only, and doesn't wake up if window messages are received, therefore doesn't address the situation.
Reinvent: Reimplement the whole TEventObject functionality, which will mostly be line-for-line identical except that the windows Handle will be an accessible property instead of hidden behind an opaque pointer type.
Typecast: Apply the typecast of HANDLE(TEventObject.Handle^) to grab the windows handle out of the opaque type, disable the warning, and just hope the implementation behind the opaque type doesn't change in a future version of FPC.
Monitor: – Create a third thread, whose only purpose in life is to call TEventObject.WaitFor. Then back in the main thread, call MsgWaitForMultipleObjects on the third thread's TThread.Handle (since it's implementation is different: the TThread.Handle property IS a directly usable Windows handle without a typecast.
Poll: Call TEventObject.WaitFor with a small timeout of say 10 millseconds, and pump window messages between waits.
Reinvent is the safest, but also doesn't feel great; turning our backs on FPC's otherwise simple and elegant synchronization objects.
Typecast is the easiest and results in exactly the behaviour that we want, but "it's not guaranteed safe forever".
Monitor is safe, but burning an entire extra thread seems like overkill, and maybe worse than polling in #4.
Would love to hear your thoughts about how you would approach this. Remember the problem isn't that the problem can't be resolved (there are at least 4 solutions above, and maybe more I've missed), the problem is picking the 'best' solution, so your thoughts about why you would recommend a particular approach are the most valuable.