text:
package org.kuali.rice.kns.document;

import org.junit.Ignore;
import org.junit.Test;
import org.kuali.rice.krad.test.KRADTestCase;

@Ignore
public class DocumentAuthorizerBaseTest extends KRADTestCase {
	// TODO rewrite this test
//    private static final Logger LOG = Logger.getLogger(DocumentAuthorizerBaseTest.class);
//
//    private static final String SUPERVISOR_USER = "ABNEY";
//    private static final String SUPERVISOR_UNIVERSAL = "2237202707";
//    private static final String NONSUPER_USER = "BARTH";
//    private static final String NONSUPER_UNIVERSAL = "5998202207";
//    private static final String NONSUPER_2_USER = "COOTER";
//    private static final String NONSUPER_2_UNIVERSAL = "598746310";
//
//    private DocumentAuthorizer documentAuthorizer;
//    private PessimisticLockService pessimisticLock;
//
//    @Override
//    public void setUp() throws Exception {
//        super.setUp();
//        documentAuthorizer = new DocumentAuthorizerBase();
//        pessimisticLock = KRADServiceLocatorInternal.getPessimisticLockService();
//    }
//
//    @Override
//    public void tearDown() throws Exception {
//        try {
//            new ClearDatabaseLifecycle(Arrays.asList(new String[]{"KNS_PESSIMISTIC_LOCK_T"}), null).start();
//        } catch (Exception e) {
//            LOG.warn("Caught exception trying to clear Pessimistic Lock table");
//        }
//        super.tearDown();
//    }
//
//    // following is the Supervisor & Initiator grid
//
//    // ## Supervisor? UserIsInitiator? ApprovalRequested? canSupervise Result
//    // -----------------------------------------------------------------------------------
//    // A true true true true
//    //
//    // B true true false false
//    //
//    // C true false true true
//    //
//    // D true false false true
//    //
//    // E false * * false
//    //

    /* This test can no longer use mock objects because the isSupervisor() method is no longer on the Person object.
     * To check for supervisor status you know must to through the group service and check membership in the supervisor group.
     */
	@Test
    public void testCanSuperviseAsInitiatorA() {
//
//        DocumentActionFlags flags;
//        Document document;
//
//        // scenario A
//        //document = new MockDocument(getSuperUser(), true);
//        //flags = documentAuthorizer.getDocumentActionFlags(document, getSuperUser());
//        //assertTrue(flags.getCanSupervise());
//
//        // scenario B
//        document = new MockDocument(getSuperUser(), false);
//        flags = documentAuthorizer.getDocumentActionFlags(document, getSuperUser());
//        assertFalse(flags.getCanSupervise());
//
//        // scenario C
//        document = new MockDocument(getNonSuperUser(), true);
//        flags = documentAuthorizer.getDocumentActionFlags(document, getSuperUser());
//        assertTrue(flags.getCanSupervise());
//
//        // scenario D
//        document = new MockDocument(getNonSuperUser(), false);
//        flags = documentAuthorizer.getDocumentActionFlags(document, getSuperUser());
//        assertTrue(flags.getCanSupervise());
//
    }

//
//    private void verifyEditModeExists(Map editMode, String editModeToTest, String expectedValue) {
//        assertNotNull("Edit mode map should have a valid value for " + editModeToTest, editMode.get(editModeToTest));
//        assertEquals("Edit mode map should contain entry with key '" + editModeToTest + "' and value '" + expectedValue + "'", expectedValue, editMode.get(editModeToTest));
//    }
//
//    private void verifyEditModeDoesNotExist(Map editMode, String editModeToTest) {
//        assertNull("Edit mode map should not have an entry for " + editModeToTest, editMode.get(editModeToTest));
//    }
//
//    protected Person getWorkflowPessimisticLockOwnerUser() {
//        Person person = KimImplServiceLocator.getPersonService().getPersonByPrincipalName(KNSConstants.SYSTEM_USER);
//        if (person == null) {
//            throw new RuntimeException("Cannot find user with network id '" + KNSConstants.SYSTEM_USER);
//        }
//        return person;
//    }
//
//    /**
//     * This method tests the Pessimistic locking mechanism when no custom lock descriptors are being used by the document in
//     * the default manner (locks are unique to user and document)
//     *
//     * @throws Exception
//     */
    @Test
    public void testEstablishLocks_DefaultDocumentAuthorizerBase() throws Exception {
//        PessimisticLockService lockService = KRADServiceLocatorInternal.getPessimisticLockService();
//
//        // test no lock creation needed
//        Document document = new MockDocument(getNonSuperUser(), false);
//        int originalExpectedLockCount = 0;
//        // no lock should be created
//        int expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        Map oldEditMode = getEditMode_ReadOnly();
//        String testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        Map newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test valid lock creation where no user has any locks and edit modes returned are same as passed in
//        document = new MockDocument(getNonSuperUser(), false);
//        originalExpectedLockCount = 0;
//        // one lock should be created
//        expectedLockCountIncrease = 1;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test invalid lock status (2 locks by 2 different users) throws exception
//        document = new MockDocument(getNonSuperUser(), false);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), getSuperUser()));
//        try {
//            this.pessimisticLock.establishLocks(document, getEditMode_FullEntry(), getNonSuperUser());
//            fail("Document authorizer should have thrown exception of type PessimisticLockingException");
//        } catch (PessimisticLockingException e) {
//            // expected result
//        } catch (Exception e) {
//            fail("Document authorizer threw an exception but it was not of type PessimisticLockingException... it was a " + e.getClass().getName());
//        }
//
//        // test valid lock status (2 locks by 2 different users with one user being workflow lock user) does not throw
//        // exception
//        document = new MockDocument(getNonSuperUser(), false);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), getWorkflowPessimisticLockOwnerUser()));
//        try {
//            this.pessimisticLock.establishLocks(document, getEditMode_FullEntry(), getNonSuperUser());
//        } catch (Exception e) {
//            fail("Document authorizer should not have thrown an exception but did with type '" + e.getClass().getName() + "' and message: " + e.getMessage());
//        }
//
//        // test other user already has lock should return editMode of ReadOnly
//        document = new MockDocument(getNonSuperUser(), false);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), getSuperUser()));
//        originalExpectedLockCount = 1;
//        // one lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test current user already has lock and that edit modes returned are same as passed in
//        document = new MockDocument(getNonSuperUser(), false);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), getNonSuperUser()));
//        originalExpectedLockCount = 1;
//        // one lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.VIEW_ONLY, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, testString);
//
    }
//
//    /**
//     * This method tests the Pessimistic locking mechanism when custom lock descriptors are being used by the document in the
//     * default manner (locks are unique to user, document, and lock descriptor)
//     *
//     * @throws Exception
//     */
    @Test
    public void testEstablishLocks_CustomDocumentAuthorizerBase() throws Exception {
//        GlobalVariables.setUserSession(new UserSession("quickstart"));
//        PessimisticLockService lockService = KRADServiceLocatorInternal.getPessimisticLockService();
//        DocumentAuthorizer documentAuthorizer = new TestDocumentAuthorizerBase();
//        String lockDescriptor1 = "test the first lock";
//        String lockDescriptor2 = "this is the second lock";
//        String lockDescriptor3 = "booyah locks";
//
//        // test no lock creation needed
//        Document document = new MockDocument(getNonSuperUser(), false);
//        String expectedLockDescriptor = lockDescriptor1;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        int originalExpectedLockCount = 0;
//        // no lock should be created
//        int expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        Map oldEditMode = getEditMode_ReadOnly();
//        String testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        Map newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test lock descriptors nullify PessimisticLockingException throwing
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getSuperUser()));
//        try {
//            this.pessimisticLock.establishLocks(document, getEditMode_FullEntry(), getNonSuperUser());
//        } catch (Exception e) {
//            fail("Document authorizer should not have thrown an exception but did with type '" + e.getClass().getName() + "' and message: " + e.getMessage());
//        }
//
//        // test valid lock status (2 locks by 2 different users with one user being workflow lock user) does not throw
//        // exception
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getWorkflowPessimisticLockOwnerUser()));
//        try {
//            //documentAuthorizer.establishLocks(document, getEditMode_FullEntry(), getNonSuperUser());
//            this.pessimisticLock.establishLocks(document,getEditMode_FullEntry(), getNonSuperUser());
//        } catch (Exception e) {
//            fail("Document authorizer should not have thrown an exception but did with type '" + e.getClass().getName() + "' and message: " + e.getMessage());
//        }
//
//        // test valid lock creation with descriptor where no user has any locks and edit modes returned are same as passed in
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        originalExpectedLockCount = 0;
//        // one lock should be created
//        expectedLockCountIncrease = 1;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Lock descriptor from new lock is incorrect", expectedLockDescriptor, document.getPessimisticLocks().get(0).getLockDescriptor());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test other user already has lock with same descriptor should return editMode of ReadOnly
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor1;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getSuperUser()));
//        originalExpectedLockCount = 1;
//        // no lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "dummyString";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        assertNotNull("Establish locks should return a UNVIEWABLE edit mode", newEditMode.get(AuthorizationConstants.EditMode.UNVIEWABLE));
//        assertEquals("Establish locks method returned invalid UNVIEWABLE edit mode", testString, newEditMode.get(AuthorizationConstants.EditMode.UNVIEWABLE));
//
//        // test other user already has lock with different descriptor should return given edit modes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor1;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        PessimisticLock oldLock = lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getNonSuperUser());
//        document.addPessimisticLock(oldLock);
//        originalExpectedLockCount = 1;
//        // one lock should be created
//        expectedLockCountIncrease = 1;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        for (PessimisticLock lock : document.getPessimisticLocks()) {
//            if (!lock.getId().equals(oldLock.getId())) {
//                assertEquals("Lock descriptor of new lock is incorrect", expectedLockDescriptor, lock.getLockDescriptor());
//            }
//        }
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test current user has lock with same lock descriptor and other users have no locks should return given edit modes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor1;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), expectedLockDescriptor, getNonSuperUser()));
//        originalExpectedLockCount = 1;
//        // no lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test current user has lock with different lock descriptor and other users have no locks should return given edit
//        // modes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor1;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        oldLock = lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, getNonSuperUser());
//        document.addPessimisticLock(oldLock);
//        originalExpectedLockCount = 1;
//        // one lock should be created
//        expectedLockCountIncrease = 1;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.VIEW_ONLY, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        for (PessimisticLock lock : document.getPessimisticLocks()) {
//            if (!lock.getId().equals(oldLock.getId())) {
//                assertEquals("Lock descriptor of new lock is incorrect", expectedLockDescriptor, lock.getLockDescriptor());
//            }
//        }
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, testString);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE);
//
//        // test invalid lock status (2 locks with same lock descriptor by 2 different users) throws exception
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, getSecondNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getSuperUser()));
//        try {
//            this.pessimisticLock.establishLocks(document, getEditMode_FullEntry(), getNonSuperUser());
//            fail("Document authorizer should have thrown exception of type PessimisticLockingException");
//        } catch (PessimisticLockingException e) {
//            // expected result
//        } catch (Exception e) {
//            fail("Document authorizer threw an exception but it was not of type PessimisticLockingException... it was a " + e.getClass().getName());
//        }
//
//        // test valid lock status (2 locks by 2 different users with one user being workflow lock user) does not throw
//        // exception
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        Person user = getWorkflowPessimisticLockOwnerUser();
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, user));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getSuperUser()));
//        try {
//            this.pessimisticLock.establishLocks(document, getEditMode_FullEntry(), getNonSuperUser());
//        } catch (Exception e) {
//            fail("Document authorizer should not have thrown an exception but did with type '" + e.getClass().getName() + "' and message: " + e.getMessage());
//        }
//
//        // test current user has lock with different descriptor and other users have locks with same descriptors should
//        // return read only editmodes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, getSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getSecondNonSuperUser()));
//        originalExpectedLockCount = 3;
//        // no lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test current user has lock with same descriptor and other users have locks with different descriptors should
//        // return given editmodes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), expectedLockDescriptor, getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getSecondNonSuperUser()));
//        originalExpectedLockCount = 3;
//        // no lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//
//        // test current user has lock with different lock descriptor and other users have locks with different lock
//        // descriptor should return given edit modes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor1;
//        List<Long> existingLockIds = new ArrayList<Long>();
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        oldLock = lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, getSecondNonSuperUser());
//        existingLockIds.add(oldLock.getId());
//        document.addPessimisticLock(oldLock);
//        oldLock = lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getSecondNonSuperUser());
//        existingLockIds.add(oldLock.getId());
//        document.addPessimisticLock(oldLock);
//        oldLock = lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, getSuperUser());
//        existingLockIds.add(oldLock.getId());
//        document.addPessimisticLock(oldLock);
//        originalExpectedLockCount = existingLockIds.size();
//        // one lock should be created
//        expectedLockCountIncrease = 1;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_FullEntry();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.VIEW_ONLY, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        for (PessimisticLock lock : document.getPessimisticLocks()) {
//            if (!existingLockIds.contains(lock.getId())) {
//                // this must be the newly created lock
//                assertEquals("Lock descriptor of new lock is incorrect", expectedLockDescriptor, lock.getLockDescriptor());
//            }
//        }
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, testString);
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE);
//
//        // test current user has lock with wrong descriptor and no entry edit modes return given editmodes
//        document = new MockDocument(getNonSuperUser(), false);
//        expectedLockDescriptor = lockDescriptor3;
//        GlobalVariables.getUserSession().addObject(TestDocumentAuthorizerBase.USER_SESSION_OBJECT_KEY, (Object) expectedLockDescriptor);
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor1, getNonSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor3, getSuperUser()));
//        document.addPessimisticLock(lockService.generateNewLock(document.getDocumentNumber(), lockDescriptor2, getSecondNonSuperUser()));
//        originalExpectedLockCount = 3;
//        // no lock should be created
//        expectedLockCountIncrease = 0;
//        assertEquals("Lock count is incorrect", originalExpectedLockCount, document.getPessimisticLocks().size());
//        oldEditMode = getEditMode_ReadOnly();
//        testString = "is this the string";
//        oldEditMode.put(AuthorizationConstants.EditMode.UNVIEWABLE, testString);
//        newEditMode = this.pessimisticLock.establishLocks(document, oldEditMode, getNonSuperUser());
//        assertEquals("Lock count is incorrect", originalExpectedLockCount + expectedLockCountIncrease, document.getPessimisticLocks().size());
//        assertEquals("Establish locks method returned invalid number of edit modes", oldEditMode.size(), newEditMode.size());
//        verifyEditModeDoesNotExist(newEditMode, AuthorizationConstants.EditMode.FULL_ENTRY);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.VIEW_ONLY, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        verifyEditModeExists(newEditMode, AuthorizationConstants.EditMode.UNVIEWABLE, testString);
    }
//
    @Test
    public void testHasPreRouteEditAuthorization() throws Exception {
//    	//TODO: the test for preRouteEditAuthorization should be removed
//        GlobalVariables.setUserSession(new UserSession("quickstart"));
//        PessimisticLockTestDocumentAuthorizer lockDocumentAuthorizer = new PessimisticLockTestDocumentAuthorizer();
//        lockDocumentAuthorizer.USES_PESSIMISTIC_LOCKING = false;
//
//        Person initiatorUser = getNonSuperUser();
//        Person authorizerUser = getNonSuperUser();
//        Document document = new MockDocument(initiatorUser, false);
//        assertTrue(authorizerUser + " should have Initiate Authorization due to initator being " + initiatorUser, lockDocumentAuthorizer.hasInitiateAuthorization(document, authorizerUser));
//        //assertTrue(authorizerUser + " should have Pre Route Edit Authorization", lockDocumentAuthorizer.hasPreRouteEditAuthorization(document, authorizerUser));
//
//        initiatorUser = getNonSuperUser();
//        authorizerUser = getSuperUser();
//        document = new MockDocument(initiatorUser, false);
//        assertFalse(authorizerUser + " should not have Initiate Authorization due to initator being " + initiatorUser, lockDocumentAuthorizer.hasInitiateAuthorization(document, authorizerUser));
//        //assertFalse(authorizerUser + " should not have Pre Route Edit Authorization", lockDocumentAuthorizer.hasPreRouteEditAuthorization(document, authorizerUser));
//
//        // switch to using pessimistic locking for the next tests
//        lockDocumentAuthorizer.USES_PESSIMISTIC_LOCKING = true;
//
//        initiatorUser = getNonSuperUser();
//        authorizerUser = getSuperUser();
//        document = new MockDocument(initiatorUser, false);
//        assertFalse(authorizerUser + " should not have Initiate Authorization due to initator being " + initiatorUser, lockDocumentAuthorizer.hasInitiateAuthorization(document, authorizerUser));
//        //assertFalse(authorizerUser + " should not have Pre Route Edit Authorization", lockDocumentAuthorizer.hasPreRouteEditAuthorization(document, authorizerUser));
//
//        initiatorUser = getNonSuperUser();
//        authorizerUser = getNonSuperUser();
//        document = new MockDocument(initiatorUser, false);
//        document.addPessimisticLock(KRADServiceLocatorInternal.getPessimisticLockService().generateNewLock(document.getDocumentNumber(), getSecondNonSuperUser()));
//        assertTrue(authorizerUser + " should have Initiate Authorization due to initator being " + initiatorUser, lockDocumentAuthorizer.hasInitiateAuthorization(document, authorizerUser));
//        //assertFalse(authorizerUser + " should not have Pre Route Edit Authorization", lockDocumentAuthorizer.hasPreRouteEditAuthorization(document, authorizerUser));
//
//        initiatorUser = getNonSuperUser();
//        authorizerUser = getNonSuperUser();
//        document = new MockDocument(initiatorUser, false);
//        document.addPessimisticLock(KRADServiceLocatorInternal.getPessimisticLockService().generateNewLock(document.getDocumentNumber(), authorizerUser));
//        assertTrue(authorizerUser + " should have Initiate Authorization due to initator being " + initiatorUser, lockDocumentAuthorizer.hasInitiateAuthorization(document, authorizerUser));
//        //assertTrue(authorizerUser + " should have Pre Route Edit Authorization", lockDocumentAuthorizer.hasPreRouteEditAuthorization(document, authorizerUser));
    }
//
    @Test
    public void testGetDocumentActionFlagsUsingPessimisticLocking() throws Exception {
//        GlobalVariables.setUserSession(new UserSession("quickstart"));
//        String editModeTrueValue = "TRUE";
//        String editModeFalseValue = "FALSE";
//        PessimisticLockTestDocumentAuthorizer lockDocumentAuthorizer = new PessimisticLockTestDocumentAuthorizer();
//
//        Person initiatorUser = getNonSuperUser();
//        Person authorizerUser = getNonSuperUser();
//        Document document = new MockDocument(initiatorUser, false);
//        lockDocumentAuthorizer.USES_PESSIMISTIC_LOCKING = false;
//        Map editMode = new HashMap();
//        lockDocumentAuthorizer.setEditMode(MapUtils.putAll(editMode, new Map.Entry[]{new DefaultMapEntry(AuthorizationConstants.EditMode.VIEW_ONLY,"TRUE")}));
//        DocumentFormPlaceholder formDummy = implementDocumentAuthorizerMethods(lockDocumentAuthorizer, document, new MockPerson(GlobalVariables.getUserSession().getPerson()));
    }
//
//    /**
//     * This is a stand-in object for a {@link KualiDocumentFormBase} object
//     */
//    private class DocumentFormPlaceholder {
//        public Map editingMode;
//        public DocumentActionFlags documentActionFlags;
//    }
//
//    /**
//     * This method is a stand-in method to duplicate the behavior of
//     * {@link KualiDocumentFormBase#populateAuthorizationFields(DocumentAuthorizer)} and
//     * {@link KualiDocumentFormBase#useDocumentAuthorizer(DocumentAuthorizer)}
//     *
//     * @param document -
//     *            document to use for edit modes and action flags
//     * @param kualiUser -
//     *            user to use in place of what may be in GlobalVariables
//     * @return a stand-in object for {@link KualiDocumentFormBase} that holds the edit mode map and the
//     *         {@link DocumentActionFlags} object that would be held in the {@link KualiDocumentFormBase}
//     */
//    private DocumentFormPlaceholder implementDocumentAuthorizerMethods(PessimisticLockTestDocumentAuthorizer documentAuthorizer, Document document, Person kualiUser) {
//        // Person kualiUser = GlobalVariables.getUserSession().getPerson();
//        // DocumentAuthorizer documentAuthorizer = KRADServiceLocatorInternal.getDocumentAuthorizationService().getDocumentAuthorizer(document);
//        Map editMode = documentAuthorizer.getEditMode(document, kualiUser);
//        if (documentAuthorizer.usesPessimisticLocking(document)) {
//            editMode = this.pessimisticLock.establishLocks(document, editMode, kualiUser);
//        }
//        DocumentFormPlaceholder formPlaceholder = new DocumentFormPlaceholder();
//        formPlaceholder.editingMode = editMode;
//        formPlaceholder.documentActionFlags = documentAuthorizer.getDocumentActionFlags(document, kualiUser);
//        return formPlaceholder;
//    }
//
//    private Person getSuperUser() {
//        return new MockPerson(SUPERVISOR_UNIVERSAL, SUPERVISOR_USER, true);
//    }
//
//    private Person getNonSuperUser() {
//        return new MockPerson(NONSUPER_UNIVERSAL, NONSUPER_USER, false);
//    }
//
//    private Person getSecondNonSuperUser() {
//        return new MockPerson(NONSUPER_2_UNIVERSAL, NONSUPER_2_USER, false);
//    }
//
//    private Map getEditMode_ReadOnly() {
//        return constructEditMode(AuthorizationConstants.EditMode.VIEW_ONLY);
//    }
//
//    private Map getEditMode_FullEntry() {
//        return constructEditMode(AuthorizationConstants.EditMode.FULL_ENTRY);
//    }
//
//    private Map constructEditMode(String editModeValue) {
//        Map editMode = new HashMap();
//        editMode.put(editModeValue, DocumentAuthorizerBase.EDIT_MODE_DEFAULT_TRUE_VALUE);
//        return editMode;
//    }
//
//    private class MockDocument extends DocumentBase {
//
//        private MockDocument() {
//            super();
//        }
//
//        public MockDocument(Person initiator, boolean isApprovalRequested) {
//            this();
//            this.documentNumber = "1234567890";
//            getDocumentHeader().setWorkflowDocument(new MockWorkflowDocument(initiator, isApprovalRequested));
//        }
//
//        @Override
//        protected LinkedHashMap toStringMapper() {
//            LinkedHashMap map = new LinkedHashMap();
//            map.put("class", "MockDocument");
//            map.put(KNSPropertyConstants.DOCUMENT_NUMBER, documentNumber);
//            map.put("initiator", getDocumentHeader().getWorkflowDocument().getInitiatorNetworkId());
//            return map;
//        }
//
//        public boolean getAllowsCopy() {
//            return false;
//        }
//
//    }
//
//    private class MockWorkflowDocument extends MockWorkflowDocument {
//
//        private Person initiator;
//        private boolean approvalRequested;
//
//        private MockWorkflowDocument() {};
//
//        public MockWorkflowDocument(Person initiator, boolean isApprovalRequested) {
//            this.initiator = initiator;
//            this.approvalRequested = isApprovalRequested;
//        }
//
//        public String getInitiatorNetworkId() {
//            return initiator.getPrincipalName();
//        }
//
//        public boolean isApprovalRequested() {
//            return approvalRequested;
//        }
//
//        public boolean userIsInitiator(Person user) {
//            return initiator.getPrincipalId().equalsIgnoreCase(user.getPrincipalId());
//        }
//
//		/**
//		 * This overridden method ...
//		 *
//		 * @see org.kuali.rice.krad.workflow.service.KualiWorkflowDocument#appSpecificRouteDocumentToGroup(java.lang.String, java.lang.String, int, java.lang.String, org.kuali.rice.kim.bo.group.dto.GroupInfo, java.lang.String, boolean)
//		 */
//		public void appSpecificRouteDocumentToGroup(String actionRequested,
//				String routeTypeName, String annotation,
//				GroupIdDTO groupId, String responsibilityDesc,
//				boolean forceAction) throws WorkflowException {
//			// TODO sp20369 - THIS METHOD NEEDS JAVADOCS
//
//		}
//
//    }
//
//    private class MockPerson extends PersonImpl {
//        private boolean supervisor;
//        private String principalId;
//        private String principalName;
//
//        private MockPerson() {};
//
//        public MockPerson(Person user) {
//            this(user.getPrincipalId(), user.getPrincipalName(), KimApiServiceLocator.getIdentityManagementService().isMemberOfGroup(user.getPrincipalId(), org.kuali.rice.kim.util.KimApiConstants.KIM_GROUP_KFS_NAMESPACE_CODE, KRADServiceLocatorInternal.getKualiConfigurationService().getPropertyValueAsString(KNSConstants.KNS_NAMESPACE, KNSConstants.DetailTypes.DOCUMENT_DETAIL_TYPE, KNSConstants.CoreApcParms.SUPERVISOR_WORKGROUP)));
//        }
//
//        public MockPerson(String universalId, String userId, boolean supervisor) {
//            this.principalId = universalId;
//            this.principalName = userId;
//            this.supervisor = supervisor;
//        }
//
//        public boolean isSupervisorUser() {
//            return supervisor;
//        }
//
//        public String toString() {
//            return ((supervisor) ? "Supervisor " : "") + "User (" + getPrincipalName() + ")";
//        }
//
//		public String getPrincipalId() {
//			return this.principalId == null ? super.getPrincipalId() : this.principalId;
//		}
//
//		public String getPrincipalName() {
//			return this.principalName == null ? super.getPrincipalName() : this.principalName;
//		}
//
//    }
}

redpajama_set_name: RedPajamaGithub


text:
PORTNAME=	Microsoft.Extensions.Logging
PORTVERSION=	1.0.0.0

NET_DEPENDS+=	System.Linq>=1.0:${PORTSDIR}/dotnet/System.Linq \
		Microsoft.Extensions.DependencyInjection.Abstractions>=1.0:${PORTSDIR}/dotnet/Microsoft.Extensions.DependencyInjection.Abstractions \
		Microsoft.Extensions.Logging.Abstractions>=1.0:${PORTSDIR}/dotnet/Microsoft.Extensions.Logging.Abstractions

GH_PROJECT=	Logging

DOTNET_REFERENCES+=	${DOTNET_REF}:${DOTNET_PATH}/System.Linq.dll \
			${DOTNET_REF}:${DOTNET_PATH}/Microsoft.Extensions.DependencyInjection.Abstractions.dll \
			${DOTNET_REF}:${DOTNET_PATH}/Microsoft.Extensions.Logging.Abstractions.dll

.include <../../dotnet/aspnet/Makefile.common>


text:
RLSA...the association for legal professionals
...dedicated to enhancing the competencies and contributions of members in the legal services profession...
Court Observance Week
History of Court Observance Week:
XXXVIII President of the United States: 1974-1977
Proclamation 4327 – National Legal Secretaries' Court Observance Week, 1974
By the President of the United States of America
A Proclamation
Our vast and complex system of justice cannot function without the skill and dedication of our Nation's legal secretaries. Without these unsung heroes of the legal process, the wheels of justice would grind to a permanent halt. They deserve the praise, gratitude and respect not only of their employers but of the system which they serve so well. One way in which their employers can demonstrate their appreciation for jobs well done is by giving their legal secretaries greater opportunities to observe courtroom proceedings—to see more of the system in action.
Thus began the Court Observance Week tradition. For these past 40 years, NALS members have upheld the legacy established by this proclamation by sponsoring and participating in themed activities that promote understanding of courtroom procedures. The NALS Education Committee is charged with the responsibility of creating each year's theme.
To read the full text of President Ford's proclamation, visit The American Presidency Project's website at http://www.presidency.ucsb.edu. It's just another reminder of the importance of your contribution to the legal community.
Each year, RLSA participates in Court Observance Week. Past observances include putting on a mock trial at the John Marshall Courts Building -- The Estate of Hans Jensen v. White Star Line, a mostly true account of a case involving the operator of the R.M.S. Titanic. Hans Jensen and his finance, Carla Jensen, were passengers on the Titanic along with Carla's uncle and cousin. Carla had quarters in the single woman's section on the lower deck of the ship and left the Titanic in Life Boat 16. The evacuation process was supervised by Second Officer Lightoller, a witness in the trial. He was able to launch Collapsible Boat D, but this was the last lifeboat launched from the Titanic before it sank. As Boat D was being lowered past A-Deck, the other witness, Swedish Military Attache Bjornstrom-Steffanson, really did dive into the partially full lifeboat. The amazing story of Officer Lightoller being sucked under by the sinking ship and then blown back to the surface by an exploding boiler is also true. The account of what happened to Hans Jensen that night is speculation, however, because neither he, nor either of Carla's relatives survived. The sinking of the Titanic deeply affected Carla and when she died in 1980, she was buried in the nightgown that she wore the night she was lowered in Lifeboat 16 into the dark, freezing waters of the North Atlantic.
In honor of the 2013 Court Observance Week, RLSA provided pastry trays to the Circuit Court Clerk's offices for the City of Richmond, Henrico County, Chesterfield County, and Hanover County.
For additional information on Court Observance Week, please contact Joyce Crostic at jcrostic@sandsanderson.com.
NALS Code of Ethics and Professional Responsibilit...
Workers' Compensation Law - August 24, 2015 CLE Af...

redpajama_set_name: RedPajamaCommonCrawl


I sent this message two weeks ago....  I have never got a reply.
This machine, "Machine serial number 20502", is on maintenance.
HEY FOLKS, IT IS NOT UP TO ME TO REMIND YOU TO ANSWER YOUR MAIL.
1SCT:GET-ALL-SYSTEM-INPUT-FILES0, etc., is not basic code, at least not in 7.1.


Oceanic Bar - Kalamaki - Zante: So long and thanks for all the fish!
For those of you that have ever read or watched Hitchhikers guide to the Galaxy the heading for this post is what the Dolphins said when they decided to leave earth before its destruction.
Yes my friends and foe its time for me to leave this wonderful rain drenched land and head for, well, a rain drenched land, BUGGER! Its been raining on Zakynthos but as soon as i get there with my jolly manner and dodgy smile the sun will put his hat on hip hip hip hooray! My bar is calling me and people are having bets to see if i've done a runner or not from the island, unfortunately for the gossips on the island i'm on my way back, so how silly will they look LOL.
This bloody credit crunch has stopped me getting my decking and 2 new sofas but hopefully by june the millions will be in and i can upgrade a few things, my yacht needs a new jacuzzi, oh well i'll have to fart in the bath instead to make the bubbles haha.
There are a few things i have to do when i get there at 6am Mon, get my bike started, pay my taxes, pay my beer supplies, pay my accountant, pay my landlord, pay for music licence, pay my electric bill and clean up the bar and get it ready by 7pm, WOW think i'll stay home, not much to do as you can see, OH MY GOD!
So i shall bid ye all fairywell thy lovely oldy worldy folk and see thee in more clement climes in thy country of thee gods.


The integer degrees (d) are equal to the integer part of the decimal degrees (dd): d = integer(dd) The minutes (m) are equal to the integer part of the decimal degrees (dd) …... To learn how to round a number to the nearest multiple see our Round to Nearest Multiple Calculator. Round to multiples of whole numbers or decimals such as tenths, hudredths, thousandths, etc. Round to multiples of whole numbers or decimals such as tenths, hudredths, thousandths, etc.
Revised @2009 MLC Page 1 of 21 Decimals Worksheets Decimal Place Values The decimal point separates the whole numbers from the fractional part of a number. 1328. 1095 In a whole number the decimal point is all the way to the right, even if it is not shown in a problem. 25 = 25. The place values of the number 1328.1095 are shown below: 1328.1095 In word problems you will be asked to translate... Simplified Formulas: Bernie Deitrick sent (2005-03-04) sent me a simplied means of redoing his previous work -- see how long it takes me to actually change formulas used.
Convert Hours & Minutes to Decimal Hours. Ever wonder how to convert minutes to decimal hours? Or decimal hours to minutes? You're not alone! We get this question a lot! We also have a time card calculator that allows you to enter an entire week of in and out times. It then auto calculates the hours, including lunch and overtime. Of if you want to completely automate time, check out employee... It can round to the right or left of the decimal point. If num_digits > 0, number is rounded to the specified number of decimal places to the right of the decimal point. If num_digits 0, number is rounded to the left of the decimal point (i.e. to the nearest 10, 100, 1000, etc.).
Round the decimal number 5.6192 to the nearest hundredth?
1/9 in decimal form. 1/9 is equal to 0.11111111111111 in decimal form. See solution steps below. Use the fraction to decimal converter below to write any fraction as a decimal.


text:
Lamborghini Gallardo LP560-4 Setting a New Standard
2:58 PM PST - 6/20/2009 Written By: Lamborghini SPA
Photography by: Lamborghini SPA
Lamborghini Gallardo LP 560 Engine Bay Source Lamborghini SPA
Powerful elegance - a new definition
The Gallardo LP560-4 is the successor of the most successful Lamborghini model of all time. Approximately 7100 Gallardo models have left the Sant'Agata Bolognese production plant since its launch in 2003. "The LP560-4 will consolidate this success story," states Stephan Winkelmann, President and CEO of Automobili Lamborghini. "It will outclass its predecessor in every aspect; its dynamics are distinctly breathtaking and its design sets new standards. With the introduction of the Gallardo LP560-4, we will consistently continue Lamborghini's growth strategy".
The powerful heart of the Gallardo LP560-4 is the new 5.2 litre V10 engine with an output of 560 PS (412 kW) at 8000 rpm. The increase of 40 hp compared with that of the previous Gallardo, and the approximate 44.2 lbs reduction in weight, improves the power weight ratio to 5.5 lbs per hp and thus enhances performance. The LP560-4 accelerates from 0-62 mph in 3.7 seconds, its speed at 11.8 seconds is 124 mph and its top speed lies at 202 mph. At the same time the new, highly efficient engine enthralls its driver with its direct fuel injection system - "Iniezione Diretta Stratificata". Despite its clearly increased power, fuel consumption and CO2 emissions have been reduced by a staggering 18 per cent.
The engineers in the Sant'Agata-based Technical Department have also improved traction, handling and stability at high speeds. The redesigned four-wheel drive transmission, the new suspension and the optimized aerodynamics as well as the reduced weight and decreased friction between the components, all contribute to the overall improvements in the vehicle. Thus the Gallardo LP560-4 presents itself as a cutting edge super sports car also suitable for the race-track. The car is also surprisingly suited to long-distance driving and despite its extreme performance capabilities is easy to control whilst maintaining utmost stability.
Powerful elegance
A Lamborghini is and always will be a highly efficient athlete. Its extreme sensuality is based upon precision, performance and on spontaneous action. A Lamborghini's elegance is that of stark, purist strength. This DNA of the Lamborghini brand is being continuously developed by the Centro Stile in every new car. Thus the Gallardo LP560-4 displays the precise lines and clean surface edges in its distinctly minimalist design. Ornaments or embellishments of any form are alien to it.
Evolution of form systematically follows the demands of function: the newly designed front of the LP 560-4 squats deeply to the ground which contributes to its aerodynamic efficiency. The enlarged and clearly accentuated cooling intakes meet the demands of augmented engine power thus increasing the air circulation vital to a vehicle as powerful as this. The spoiler, positioned low between the air intakes, improves aerodynamic equilibrium at high speeds.
Characteristic LED – Daytime running light
The new headlights have a characteristic 'daytime' running light integrated beneath the Bi-Xenon lamps: 15 diodes (LED) have been positioned in a Y structure. The same motif appears again in the rear tail-lights. The stop and brake lights have been inspired by the Miura Concept, the Murciélago LP640 and the Reventón and display the Y form three times over. The completely redesigned rear gives the definition "powerful elegance" a new meaning: rear lights, air cooling vents, bumper and diffuser are arranged in precise positions on the car's exterior, which make the LP560-4 appear extremely wide and bonded to the road surface. In addition, the streamlined covers left and right of the engine hood accentuate the powerful shoulders and lengthened, stretched lines of the new Gallardo.
Clearly improved aerodynamics
The rear diffuser has been newly designed, is more efficient with respect to its predecessor and, together with the smooth underbody, and contributes to the excellent steering stability even at extremely high speeds. In sum, the aerodynamic efficiency with regard to output compared to that of its predecessor has been increased by 31 %. The Gallardo LP560-4 takes fast curves even more supremely.
The designers in Sant'Agata Bolognese have excelled themselves with the clear-cut, pure, stark lines of the Gallardo LP 560-4. They also have demonstrated distinct attention to detail; the elaborate aluminum cap for petrol and motor oil are testimony to this, as is the rear camera which has been integrated in a small fin in the independent rear spoiler as well as the finely-crafted grille in the exhaust pipes.
Weight is undesirable in a sports car and a lightweight model encourages the dynamics of such a vehicle. Aluminum is much lighter than sheet steel and this is why the Gallardo LP560-4 is produced with a body in a much lighter but nevertheless more stiff structure: the two-seater car measures 4.34 meters in length, 1.90 meters in width and a mere 1.16 meters in height. It weighs in dry at 1410 kilograms - which is, effectively, 20 kilograms less than that of the previous Gallardo.
The construction of the Gallardo LP560-4 utilizes what is known as a 'spaceframe construction method'. Integrally molded node elements and extruded parts create its frame, and sheet metal plates made out of aluminum have been neatly and securely integrated to form the body. The body is not only extremely light but also stiff and displays the highest safety characteristics. Thus the basis for the extraordinary handling characteristics of the LP560-4 is formed.
Integrated Pedestrian Protection system
The body of the car also demonstrates extremely high levels of 'passive security'. The Gallardo LP560-4 fulfils the not yet obligatory European directives regarding the protection of pedestrians. Furthermore, the geometry of the entire front of the car has been optimized with the addition of a special combination of materials behind the front bumper which serve to absorb any impact energy.
Luxurious individuality
Despite its low exterior height, the Gallardo LP560-4 welcomes its passengers with a spacious interior. The sports seats are covered with either fine leather or Alcantara® (upon request) and provide secure adherence and support. The position of the seats is very low, typical for sports cars. There is space behind the seats for luggage which complements the 3.88 cu. ft (110 liter) front trunk. The wide middle console is one of the elements which characterize the impression of sporty dynamism in the interior. It accommodates the standard Lamborghini multimedia system as well as the air conditioning which can be regulated on both the driver's and passenger's sides. Between both of these elements lies a newly designed module consisting of classically elegant flip switches. Seven round instruments in the cockpit with a new graphic provide the driver with essential engine data and a multifunctional display between the speedometer and revolution counter provides the driver with important information.
Workmanship of the highest quality
The Miura and the other models of the 60s were already characterized by the excellent quality of workmanship which lay far and above the general standards of that time. Lamborghini has continued this tradition and even today delivers automobiles of the highest standards. The Gallardo LP560-4 indulges with the highest quality, aesthetically pleasing materials. With regard to the leather interior, an array of different colors and stitching (also in contrasting colors) are available. As an optional, Lamborghini can deliver the Gallardo LP560-4 with a further choice of leather and Alcantara® interiors as well as Carbon Fiber Packages. Here, elements such as the air-conditioning surrounds, the control panel, the handbrake handle and the gear-stick surrounds are available in carbon fiber Furthermore, the individualisation program, Ad Personam, enables the customer to create any combination of color and trim, thus creating a highly personalized vehicle. After all, the new Lamborghini should perfectly reflect the owner's lifestyle.
Extreme power in every situation
The engine of the Gallardo LP560-4 is a completely new development. All that remains of the original V10 is the number of cylinders which, in this performance category, create a perfect and unique synthesis of torque, force of movement, sporty nimbleness, compact size and low weight.
The engine has a displacement of 5.2 liter, at a peak rpm of 8,000 creates the extreme 560 hp. This results in the excellent performance of 107.6 hp per liter. At maximum torque output, the engine yields 398 ft-lbs of torque at 6,500 rpm. The ample torque curve guarantees outstanding thrust from every engine speed. With an acceleration of 3.7 seconds from 0-62 mph and a maximum speed of 202 mph, the Gallardo LP560-4 shoots into the orbit of the most extreme and powerful sports cars.
Despite the clearly improved driving performance of this super sports car, Sant'Agata's engineers were nevertheless able to achieve a reduction in fuel consumption and CO2emissions by 18 per cent. Measured by engine power and performance, the Gallardo LP560-4 e-gear's average fuel consumption of 17 mpg, is extremely low. The protagonist in the transmission is the central viscous-coupling which requires no electronic control. In this special Lamborghini configuration, the driving torque is distributed between front and rear – generally with a 30:70 split from front to rear ratio and, within milliseconds, adapts to even the slightest variations in road conditions. A mechanical differential on the rear axle provides up to 45% limited slip and an electronic differential lock at the front complete the four-wheel drive system.
Superior traction and handling
Not only does the maximum traction take advantage of the permanent four-wheel drive system, but also the car's clearly superior handling. Each wheel can only transfer a certain amount of torque to the road. As the propulsion power is distributed onto all four wheels through the viscous traction system, more potential for directional control remains - and reserves in every situation distinguish a perfectly made sports car.
Despite all the engine thrust, changing gears in the Gallardo LP560-4 is one of the most exciting experiences of driving this vehicle. It is still the customer's personal preference as to whether one wishes to change gears manually through the exact 'gate' guides of the six-speed gearbox via the short gear stick, or whether one prefers to let his fingertips control the e.gear's paddle-shift system located behind the steering wheel: the latter solution becoming the preference of the majority of Lamborghini customers.
Gear change time reduced by 40 per cent
The automated e-gear transmission has been completely redesigned and improved in all aspects. The complete system has not only been reduced in weight, but the time employed to change gears has also been reduced by 40% in "CORSA"mode. The driver may choose between five different driving and changing programs: in addition to the 'normal' mode, the Gallardo LP560-4 offers a SPORT program with its even more rapid gear changing times and increased number of revolutions.
The CORSA program directs the engine to optimum acceleration. It permits a greater slip angle and also allows - with maximum safety - the full dynamism of the LP560-4 to be enjoyed even on a race-track. The 'Thrust Mode' ensures maximum acceleration from neutral while the angle of the throttle valve and the clutch are here optimally adjusted to one another. Finally the Automatic mode: here the engine changes gears in total independence and permits a particularly comfortable mode of driving.
The Suspension
High-tech parts with Lamborghini know-how
Even the Gallardo LP560-4's predecessor was one of the world's best super sports cars with regard to handling, precision and driving stability. However, the latest model provides an even more intense driving experience: the new suspension improves the car's handling, its driving comfort and its directional stability at high speeds.
The Gallardo LP560-4's space frame is uncompromisingly high tech. Its technical production was conceived from motor sport technologies. The double wishbones made out of aluminum with newly designed kinematics, while the springs and shock absorbers are tightly adjusted for grip.
The rear axle now has an additional track rod which further improves the excellent control of this super sports vehicle. Newly developed elements are the rubber metal bearings - authentic high-tech parts - which clearly improve the special Lamborghini driving dynamics with well-chosen material combinations and cleverly defined assembly.
Extreme road adherence
The steering rack works with relatively little assisted steering support, thus bonding the driver closely to the road. This in turn provides him with an intense experience of power and impulse. The steering has its own cooling system for the power steering fluid.
Precise, breathtakingly fast, whilst stable and free from surprises, the Gallardo LP560-4's dynamics assures a sensuous experience. The LP560-4's tires (format235/35 ZR 19 front and 295/30 ZR 19 rear) appear to bond with the asphalt. Specially developed Pirelli P-Zero series tires are fitted: these have a particularly low roll resistance which also maintains tire wear at a minimum without, of course, any reduction in their performance quality. At a speed of over 74.56 mph an independently extended rear spoiler increases the downforce on the rear axle acting in association with the specially formed underbody which directs the airstream under the car.
Optional Carbon Ceramic Brake system
The new braking system acts with brute force. At the front, eight 'Brembo specialist' piston calipers grasp the 14.4 in (365 mm) diameter brake discs. At the rear, four piston calipers act on the 14 in (356 mm) brake discs. In addition, the new disc ventilation system improves the stability in extreme situations. Optionally, discs made out of Carbon Ceramic are offered. At the front the CCB (Carbon Ceramic Brakes) discs measure 14.9 in (380mm) in diameter and at the rear 14 in (356mm). They deliver much improved performance at a reduced weight. In total, the CCB braking system is lighter in weight that, at the wheel, improves driving dynamics and comfort.
The interior and trim
With the Gallardo LP560-4 Lamborghini provides its customers with a generous and sporty standard equipment package. Direct from the production line, a customer will find included in his vehicle passenger and lateral air-bags; a two zone air-conditioning system with sun regulation; The Lamborghini Multimedia System including an USB connector; and sports seats with an electronically operated backrest. In addition to this, the interior trim includes fine leather and Bi-Xenon headlights with LED daytime running light. The car is supplied with new Apollo wheels as standard.
A large variety of options increases the interior comfort of the vehicle, including a navigation system and a module for TV reception, a hands-free Bluetooth® phone set, an anti-theft device and a rearview camera. A further option is the lifting system control of the front of the vehicle which, at the touch of a button, is raised to enable driving over obstacles. The new polished cross wheel rims 'Cordelia' or the black Y-rims 'Callisto' completes the options range. Finally, the engine hood made from glass creates a showcase for the heart of the Gallardo LP560-4.
The possibilities and different combinations available in the Individualisation Program Ad Personam are almost inexhaustible. Behind this program stands the philosophy that a super sports car of this nature should, after all, reflect the personality of its owner by enabling him to completely indulge his expectations and wishes. As a consequence, extreme exclusivity is the trademark of Lamborghini's individualisation program. "Think the Impossible" states the motto. Ad Personam offers a host of options in order that a customer may give the car an imprint of his own style with respect to the interior trim and exterior. New highlights in the program are the following three exclusive matt colors: Nero Nemesis (matte black), Bianco Canopus (matte white), Marrone Apus (matte brown). The new matt colors underline the clearly defined and purist precision of the Lamborghini design
With the new Gallardo LP560-4, Lamborghini once again sets a higher standard for super sports cars. With its new engine, permanent four-wheel drive transmission and new suspension, it delivers clearly improved performance and dynamics. In parallel, its innovative design takes the classic lines unique to the Lamborghini brand one step further. Powerful elegance has never been so defined before.
More Lamborghini
Reventón
Lamborghini Huracán - new dimension in Luxury Super Sports Car
A new era is beginning for Automobili Lamborghini and the luxury super sports car segment: with the brand new Huracán Lamborghini is not only presenting the successor to the iconic Gallardo...
Lamborghini Gallardo LP 570-4 Squadra Corse - Race track emotion
Automobili Lamborghini brings race track emotion directly to the road. It delivers high performance and brings the fascination of motor racing to the street-legal world...
Egoista, Walter De Silva's homage for Lamborghini's 50th
An emotional moment in Sant'Agata Bolognese yesterday at the culmination of the gala celebrating Lamborghini's 50th anniversary...


Wholesale Deer or Stag Head Pendant Charms.
Deer or Stag Head Pewter Charms.
Wholesale Deer or Stag Head Pendant Charms. Dimensions about 14mm L x 22mm W x 4mm D; Hole -1.5mm-; 2D - It has a dimensional design with detail in the front and back but not completely 3-dimensional. This item could be used as a charm in bracelets or as a pendant on a necklace. These charms are made with quality lead free pewter metal and available in our standard antique pewter or antique gold plated finishes. *Other finishes are available for special order. Possible production overruns on specially ordered items will be added to the order.


text:
Dr David Stevenson
Position: Senior research scientist, Plant & Food Research.
Field: Phytochemical antioxidants.
David was born in England and attended Wallington High School, near London, where he discovered his love of science. After leaving school, he enrolled at the University of Southampton, graduating first with a degree in chemistry then a PhD in biochemistry. After 3 years in the University of Southampton Chemistry Department working on enzyme function, David had an opportunity to move to the Biotechnology Research Institute in Montreal, Canada, where he worked on applied enzymology (the study of enzymes).
After his time in Canada, David moved to Wellington, New Zealand, taking up a position with the Chemistry Division of the Department of Scientific and Industrial Research (DSIR), which later became Industrial Research Limited (IRL).
Whilst at IRL he was privileged to work with Dr Richard Furneaux, a world-leading carbohydrate chemist, in the field of enzymatic synthesis of carbohydrate derivatives. Work in food ingredient processing such as extraction, enrichment and chemical modification then followed.
If you prefer a career that is so much fun that you look forward to Monday mornings, be a scientist!
All this work with food generated a personal interest in health and nutrition, and David looked for a job that could combine his personal and scientific interests.
He found one at HortResearch in Auckland and refocused his research into investigating the different ways antioxidants may benefit our health and fitness. HortResearch merged with Crop and Food Research in 2008 to form Plant & Food Research, and David transferred to the Ruakura, Hamilton, site to further his antioxidant work.
David says he has found science a very rewarding career.
I get to do work that is really interesting, use all sorts of expensive high tech equipment and even get paid for doing it!
This article is based on information current in 2011 and 2018.
Published 18 March 2011 Referencing Hub articles


text:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/sdk_bottombar_layout_inner"
        android:layout_height="fill_parent" />

    <RelativeLayout
        style="@style/PocketCampusTheme.Primary"
        android:layout_alignParentBottom="true" >

        <TextView
            android:id="@+id/sdk_bottombar_layout_bottombar"
            style="@style/PocketCampusTheme.Primary.Subtitle"
            android:gravity="center"
            android:orientation="horizontal" />
    </RelativeLayout>

</RelativeLayout>


Last week, for one of the first times ever, the entire nation suffered together. On Tuesday, the temperature was below freezing in ALL 50 states. So while we can't all agree on issues like gay marriage, gun control or a women's right to choose, for one day we all agreed – it was freezing.
The best way to survive a polar vortex is to stay inside, and when that isn't possible, bundle up! Down coats, fleece mittens and wool hats become part of the every day uniform. And warm meals are a must for the evening. I used the cold weather as an opportunity to make a dish I'd been wanting to make but had been saving it for the right day, or rather, weather.
This fall one of my colleagues got married and at their wedding gave out containers of spice mix and the recipes for their favorite chili dish as favors. I was so psyched to receive this and couldn't wait to make it — unfortunately I feel strongly that chili should only be consumed in cold weather and I was forced to wait for the right day. Thankfully the polar vortex gave me the perfect occasion.
Tyler, the husband, has a cooking blog that I've written about previously, Ty's Kitchen. Here he posted his famous chili recipe that they gave out at the wedding.
For the first time ever, I actually didn't follow this recipe exactly. I just used regular ground beef and I omitted the carrots and celery. I also added in a can of kidney beans (drained and rinsed) and a small can of tomato paste (I might not have needed this). I felt like a real chef, adapting the recipe to my liking. In the end it came out really well. It was the first time I'd added vegetables to my chili and I have to say, it was a great addition.
This weekend Matt and I took our first bike ride of the season. And while it was only 2 loops of a very crowded Central Park, it was great.
Here's to warmer weather and lots of allergy medicine!
Why is it that rainy weather has such a gloomy effect on me?
When I was younger I used to love the rain – especially during the summer. The rain wouldn't stop us from having fun, if anything, it would increase it.
A little light rain wouldn't stop us from going to the Bluffs (our swim and tennis club) but it would send other families home. As a result, Abby and I would have the whole pool to ourselves and there was no line for the diving board. It was only years later, when I was a lifeguard at the Bluffs myself, that I realized just how annoying our family must have been – forcing the lifeguards to keep the pool open and sit out in the rain while they watched us swim around.
When we weren't at the Bluffs, Abby and I would put our bathing suits on and run around the yard stomping in puddles. Unfortunately, when I learned about acid rain in my 6th grade science class, that fun sort of died.
Other rainy day activities included making chocolate chip cookies, doing arts and crafts, trips to the library and watching Disney movies in our pjs. No wonder I liked the rain, it was so much fun.
As an adult, the rain has most of its appeal.
On my walk to the subway, even if I am wearing a rain coat and carrying an umbrella I will inevitably get wet.
The rain seems to heighten the smell of urine that is a constant on the streets of NYC.
I will inevitably get hit in the head by someone's umbrella.
The subway smells like wet dog.
Unfortunately, "rain" isn't a suitable excuse to miss work, or even to wear your pjs to the office.
Eating an entire bowlful of chocolate chip cookie dough isn't an option anymore.
You think going to a museum on a rainy day would be fun? Oh right, so do 2.5 million other NYers.
Thankfully it looks like the sun is starting to come out!
Children returning to school with new outfits and freshly sharpened pencils.
The coolness in the air that you feel occasionally when a breeze blows by.
Delicious apples at the farmers markets.
And my favorite, the return of pumpkin coffee!
So on this holiday weekend, which traditionally makes the end of summer, I say goodbye to the summer and hello to the start of the time of the year centered around seasonal coffee flavors.


Touito with the best of his ability brings forth the song with powerful and impressive vocals.
The song was written and composed by Gili Zakai and was arranged by Rami Rabbah. David is currently in middle of collecting songs for his album.


text:
MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma
Shaofang Wu, Shuzhen Wang, Siyuan Zheng, Roel Verhaak, Dimpy Koul, W. K.Alfred Yung
Glioblastoma (GBM) represents a compelling disease for kinase inhibitor therapy because most of these tumors harbor genetic alterations that result in aberrant activation of growth factor-signaling pathways. The PI3K/mammalian target of the rapamycin (mTOR) pathway is dysregulated in over 50% of human GBM but remains a challenging clinical target. Inhibitors against PI3K/mTOR mediators have limited clinical efficacy as single agents. We investigated potential bypass mechanisms to PI3K/mTOR inhibition using gene expression profiling before and after PI3K inhibitor treatment by Affymetrix microarrays. Mitogen- and stress-activated protein kinase 1 (MSK1) was markedly induced after PI3K/mTOR inhibitor treatment and disruption of MSK1 by specific shRNAs attenuated resistance to PI3K/mTOR inhibitors in glioma-initiating cells (GIC). Further investigation showed that MSK1 phosphorylates b-catenin and regulates its nuclear translocation and transcriptional activity. The depletion of b-catenin potentiated PI3K/mTOR inhibitor-induced cytotoxicity and the inhibition of MSK1 synergized with PI3K/mTOR inhibitors to extend survival in an intracranial animal model and decreased phosphorylation of b-catenin at Ser552 . These observations suggest that MSK1/ b-catenin signaling serves as an escape survival signal upon PI3K/mTOR inhibition and provides a strong rationale for the combined use of PI3K/mTOR and MSK1/b-catenin inhibition to induce lethal growth inhibition in human GBM.
https://doi.org/10.1158/1535-7163.MCT-15-0857
Published - Jul 1 2016
mitogen and stress-activated protein kinase 1
Wu, S., Wang, S., Zheng, S., Verhaak, R., Koul, D., & Yung, W. K. A. (2016). MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma. Molecular Cancer Therapeutics, 15(7), 1656-1668. https://doi.org/10.1158/1535-7163.MCT-15-0857
MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma. / Wu, Shaofang; Wang, Shuzhen; Zheng, Siyuan; Verhaak, Roel; Koul, Dimpy; Yung, W. K.Alfred.
In: Molecular Cancer Therapeutics, Vol. 15, No. 7, 01.07.2016, p. 1656-1668.
Wu, S, Wang, S, Zheng, S, Verhaak, R, Koul, D & Yung, WKA 2016, 'MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma', Molecular Cancer Therapeutics, vol. 15, no. 7, pp. 1656-1668. https://doi.org/10.1158/1535-7163.MCT-15-0857
Wu S, Wang S, Zheng S, Verhaak R, Koul D, Yung WKA. MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma. Molecular Cancer Therapeutics. 2016 Jul 1;15(7):1656-1668. https://doi.org/10.1158/1535-7163.MCT-15-0857
Wu, Shaofang ; Wang, Shuzhen ; Zheng, Siyuan ; Verhaak, Roel ; Koul, Dimpy ; Yung, W. K.Alfred. / MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma. In: Molecular Cancer Therapeutics. 2016 ; Vol. 15, No. 7. pp. 1656-1668.
@article{ba468b21b2964a5cb9bac4222b1a63cd,
title = "MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma",
abstract = "Glioblastoma (GBM) represents a compelling disease for kinase inhibitor therapy because most of these tumors harbor genetic alterations that result in aberrant activation of growth factor-signaling pathways. The PI3K/mammalian target of the rapamycin (mTOR) pathway is dysregulated in over 50{\%} of human GBM but remains a challenging clinical target. Inhibitors against PI3K/mTOR mediators have limited clinical efficacy as single agents. We investigated potential bypass mechanisms to PI3K/mTOR inhibition using gene expression profiling before and after PI3K inhibitor treatment by Affymetrix microarrays. Mitogen- and stress-activated protein kinase 1 (MSK1) was markedly induced after PI3K/mTOR inhibitor treatment and disruption of MSK1 by specific shRNAs attenuated resistance to PI3K/mTOR inhibitors in glioma-initiating cells (GIC). Further investigation showed that MSK1 phosphorylates b-catenin and regulates its nuclear translocation and transcriptional activity. The depletion of b-catenin potentiated PI3K/mTOR inhibitor-induced cytotoxicity and the inhibition of MSK1 synergized with PI3K/mTOR inhibitors to extend survival in an intracranial animal model and decreased phosphorylation of b-catenin at Ser552 . These observations suggest that MSK1/ b-catenin signaling serves as an escape survival signal upon PI3K/mTOR inhibition and provides a strong rationale for the combined use of PI3K/mTOR and MSK1/b-catenin inhibition to induce lethal growth inhibition in human GBM.",
author = "Shaofang Wu and Shuzhen Wang and Siyuan Zheng and Roel Verhaak and Dimpy Koul and Yung, {W. K.Alfred}",
doi = "10.1158/1535-7163.MCT-15-0857",
journal = "Molecular Cancer Therapeutics",
T1 - MSK1-Mediated βb-Catenin Phosphorylation Confers Resistance to PI3K/mTOR Inhibitors in Glioblastoma
AU - Wu, Shaofang
AU - Wang, Shuzhen
AU - Zheng, Siyuan
AU - Verhaak, Roel
AU - Koul, Dimpy
AU - Yung, W. K.Alfred
N2 - Glioblastoma (GBM) represents a compelling disease for kinase inhibitor therapy because most of these tumors harbor genetic alterations that result in aberrant activation of growth factor-signaling pathways. The PI3K/mammalian target of the rapamycin (mTOR) pathway is dysregulated in over 50% of human GBM but remains a challenging clinical target. Inhibitors against PI3K/mTOR mediators have limited clinical efficacy as single agents. We investigated potential bypass mechanisms to PI3K/mTOR inhibition using gene expression profiling before and after PI3K inhibitor treatment by Affymetrix microarrays. Mitogen- and stress-activated protein kinase 1 (MSK1) was markedly induced after PI3K/mTOR inhibitor treatment and disruption of MSK1 by specific shRNAs attenuated resistance to PI3K/mTOR inhibitors in glioma-initiating cells (GIC). Further investigation showed that MSK1 phosphorylates b-catenin and regulates its nuclear translocation and transcriptional activity. The depletion of b-catenin potentiated PI3K/mTOR inhibitor-induced cytotoxicity and the inhibition of MSK1 synergized with PI3K/mTOR inhibitors to extend survival in an intracranial animal model and decreased phosphorylation of b-catenin at Ser552 . These observations suggest that MSK1/ b-catenin signaling serves as an escape survival signal upon PI3K/mTOR inhibition and provides a strong rationale for the combined use of PI3K/mTOR and MSK1/b-catenin inhibition to induce lethal growth inhibition in human GBM.
AB - Glioblastoma (GBM) represents a compelling disease for kinase inhibitor therapy because most of these tumors harbor genetic alterations that result in aberrant activation of growth factor-signaling pathways. The PI3K/mammalian target of the rapamycin (mTOR) pathway is dysregulated in over 50% of human GBM but remains a challenging clinical target. Inhibitors against PI3K/mTOR mediators have limited clinical efficacy as single agents. We investigated potential bypass mechanisms to PI3K/mTOR inhibition using gene expression profiling before and after PI3K inhibitor treatment by Affymetrix microarrays. Mitogen- and stress-activated protein kinase 1 (MSK1) was markedly induced after PI3K/mTOR inhibitor treatment and disruption of MSK1 by specific shRNAs attenuated resistance to PI3K/mTOR inhibitors in glioma-initiating cells (GIC). Further investigation showed that MSK1 phosphorylates b-catenin and regulates its nuclear translocation and transcriptional activity. The depletion of b-catenin potentiated PI3K/mTOR inhibitor-induced cytotoxicity and the inhibition of MSK1 synergized with PI3K/mTOR inhibitors to extend survival in an intracranial animal model and decreased phosphorylation of b-catenin at Ser552 . These observations suggest that MSK1/ b-catenin signaling serves as an escape survival signal upon PI3K/mTOR inhibition and provides a strong rationale for the combined use of PI3K/mTOR and MSK1/b-catenin inhibition to induce lethal growth inhibition in human GBM.
U2 - 10.1158/1535-7163.MCT-15-0857
DO - 10.1158/1535-7163.MCT-15-0857
JO - Molecular Cancer Therapeutics
JF - Molecular Cancer Therapeutics
10.1158/1535-7163.MCT-15-0857


Final day of four: Middlesex (380-8 dec & 126-1 dec) drew with Warwickshire (211-4 dec & 191-5) THE silly season came early to Edgbaston yesterday with 45 minutes of joke bowling and a contrived finish, but it was not enough to revive this rain-ruined contest.
THE silly season came early to Edgbaston yesterday with 45 minutes of joke bowling and a contrived finish, but it was not enough to revive this rain-ruined contest.
The initial enterprise suggested that both sides were keen to win and climb into the promotion places but it was also a game that neither could afford to lose, hence the cautious approach from mid-afternoon onwards.
It was probably too early in the season to expect anything else in a division that is so tightly packed that a win would have taken Middlesex from bottom to third.
Warwickshire were certainly happier to settle for the draw as they have a game in hand on some of their rivals and they were without their two main strike bowlers, Allan Donald and Ed Giddins, and their senior batsman, Nick Knight.
Giddins will play in today's game against Worcestershire at New Road in an attempt to prove that he is recovered from a back injury before Saturday's NatWest Trophy final.
Knight's place in the final will not be determined until Saturday morning and he will receive intensive treatment this week on a torn knee cartilage, which threatens to end his season.
Without Knight's aggression, Warwickshire rarely looked interested in a victory target of 296 in 81 overs, though they faced the prospect of defeat when Michael Powell, David Hemp and Anurag Singh departed in the course of eight overs either side of tea.
Powell ended a lean spell with a patient three-hour half-century before he drove Simon Cook to short extra cover.
Hemp, who helped Powell add 83 for the third wicket, was bowled sweeping Phil Tufnell and Singh's attempt to repeat the stroke off the slow left-armer resulted only in a miscue to backward point.
Dougie Brown and Ashley Giles shut out Middlesex as the game went to sleep, which was in sharp contrast to the frenzied early activity when Warwickshire fed Middlesex 126 easy runs.
The joke was lost on Andrew Strauss when he holed out to deep square leg to become the first ever victim of Dominic Ostler's dobbers.


Diamonfire Solitaire CZ Ring. The ring is set with one Brilliant cut clear CZ in a claw setting. The CZ is cut to Diamonfire exacting standards. This give the CZ far more brilliance than often seen from CZ stones.


text:
Bernay Abbey (abbaye Notre-Dame de Bernay) was a Benedictine abbey in Bernay, Eure, France. The designers of its abbey church were ahead of their time, making it one of the first examples of Romanesque architecture in Normandy. It shows the early evolution of that style, its decorative elements and its building techniques.

Founded in the 11th century by Judith of Brittany, daughter of Conan I of Rennes and wife of Richard II, Duke of Normandy, the abbey church was listed as a historic monument in 1862, the other abbey buildings in 1965 and the archaeological remains on the site in 1999.

History
When Judith married Richard II of Normany, she received a dowry of her father's lands in Cotentin, Cinglais and Lieuvin. Bernay or 'Bernayum' was the centre of these lands, comprising 13 'charruées' (around 800 acres) of land, 18 mills and 21 churches. Judith decided to devote Bernay to the foundation of a Benedictine monastery dedicated to the Virgin Mary.

Construction began in 1010, but Judith died in 1017 before work was completed. In 1025 Richard II had a charter witnessed by the young princes Richard and Robert (the future Richard III and Robert I), the bishops of the province and most of the nobility of Normandy - it granted the abbey a vast estate stretching from Giverville to Courtonne and from Cernières to Beaumont. He also made the new monastery a satellite of Fécamp Abbey, resumed construction and put the Italian architect Guillaume de Volpiano in charge of the building work. The abbot had been a monk at Cluny Abbey and a longtime abbot of Dijon Abbey and was renowned for his work towards the completion of the abbeys at Fécamp, Jumièges and Troarn. After his trip back to Italy around 995, he studied the plans for Dijon Abbey and amended them in collaboration with Upper Italian workers and master masons who were going to work in Burgundy and Normandy. He died in 1031.

For a long while the abbey remained a satellite of Fécamp, without its own abbot and dependent on "guardians" sent from the mother house. The first of these was Thierry, probably also abbot of the abbeys at Jumièges and Mont-Saint-Michel, who died on 17 May 1027. The next was Raoul de Vieilles, also abbot of Mont-Saint-Michel, who gave half the burgh of Bernay to Robert I of Montgommery, son of Roger de Montgomery, seigneur of Montgomery and favourite of Duke Robert I - the abbey never got these lands back. He also gave his uncle Onfroy de Vieilles important lands in Saint-Évroult and Beaumont-le-Roger previously owned by Bernay Abbey.

Vitalis of Creuilly became abbot around 1055. He had been a monk at Fécamp and thanks to him Bernay was granted autonomy and full abbey status. He was a confidant of John of Fécamp, who also gave him the task of Saint-Gabriel-Brécy Priory around 1058. Vitalis remained at Bernay until he was made abbot of Westminster Abbey in 1076 by William I of England after the Norman conquest of England - he died there in 1082. He carried out considerable building works at Bernay and the conquest also brought Bernay three priories in Suffolk and Northamptonshire. Vital was replaced by his brother Osbern.

The abbey archives are lost and so the next period of the abbey's history is unclear. The monks certainly profited from their town's prosperity after it became a textile and financial centre in the 12th century. In 1249 a major fire destroyed part of the monastery, reducing it from 35 to 15 monks. In the 15th century the abbey church's north nave aisle and apse were rebuilt in the Gothic style. In 1563, Gaspard II de Coligny sacked the abbey and looted its treasures and archives and it was further damaged by the rural Gauthier uprising in 1589. It was then left almost deserted until 1618, when the cloister was rebuilt. From 1628 it was taken on by the Mauristes, who began major building works in 1686. The refectory dates to 1694. The works also demolished the church's two westernmost bays and two eastern apse chapels. A new classical façade replaced the church's original one and most of the capitals in the nave were plastered in stucco. The central tower was also heavily reworked.

Only nine monks were left in the abbey by 1790, when it was suppressed. It was then re-used as a town hall, tribunal, prison and then as a Sous-Préfecture. The north transept disappeared in 1810 and four years later the abbey church became a wheat market before being subdivided between several different users. The apse was demolished in 1827 and the central tower was also razed at an unknown date. The abbey church was in a very bad state by 1963, when a restoration commenced by the town of Bernay and France's national 'Monuments historiques'. A very fine 12th century arch (probably from the chapter house) was uncovered and in 1965 the capitals of the south transept were rediscovered. Another restoration occurred in 1978, revealing the building's importance to the study of 11th century architecture.

Abbey church
Built at a time when the duchy had not yet really discovered in its way, the Bernay Abbey represents an almost isolated attempt, prepared by a single surviving precedent, the Saint-Pierre church of the Jumièges Abbey, as a little bit premature work of talented minds and evidence of innovative traits decisive for Norman architecture: the adoption of the stepped bedside, composite stacks and the passageway at the upper level of the transept arm is. Most of the solutions of the architectural or decorative details appear without obvious ancestry and without obvious posterity, perhaps they were Burgundian imports, which were badly assimilated, but with a local rooting of traditions born at the end of the Merovingian period on the soil of the future Normandy, preserved and deepened under the Carolingians and having managed to survive the ravages of the Vikings.

References

Benedictine monasteries in France

redpajama_set_name: RedPajamaWikipedia