text:
using blink::WebInputEvent;
using blink::WebMouseEvent;
using blink::WebMouseWheelEvent;
using blink::WebTouchEvent;

namespace content {

namespace {

const int kFlushInputRateInMs = 16;
const int kPointerAssumedStoppedTimeMs = 43;
const float kTouchSlopInDips = 7.0f;
const float kMinScalingSpanInDips = 27.5f;

class MockSyntheticGesture : public SyntheticGesture {
 public:
  MockSyntheticGesture(bool* finished, int num_steps)
      : finished_(finished),
        num_steps_(num_steps),
        step_count_(0) {
    *finished_ = false;
  }
  virtual ~MockSyntheticGesture() {}

  virtual Result ForwardInputEvents(const base::TimeTicks& timestamp,
                                    SyntheticGestureTarget* target) OVERRIDE {
    step_count_++;
    if (step_count_ == num_steps_) {
      *finished_ = true;
      return SyntheticGesture::GESTURE_FINISHED;
    } else if (step_count_ > num_steps_) {
      *finished_ = true;
      // Return arbitrary failure.
      return SyntheticGesture::GESTURE_SOURCE_TYPE_NOT_IMPLEMENTED;
    }

    return SyntheticGesture::GESTURE_RUNNING;
  }

 protected:
  bool* finished_;
  int num_steps_;
  int step_count_;
};

class MockSyntheticGestureTarget : public SyntheticGestureTarget {
 public:
  MockSyntheticGestureTarget()
      : flush_requested_(false),
        pointer_assumed_stopped_time_ms_(kPointerAssumedStoppedTimeMs) {}
  virtual ~MockSyntheticGestureTarget() {}

  // SyntheticGestureTarget:
  virtual void DispatchInputEventToPlatform(
      const WebInputEvent& event) OVERRIDE {}

  virtual void SetNeedsFlush() OVERRIDE {
    flush_requested_ = true;
  }

  virtual SyntheticGestureParams::GestureSourceType
  GetDefaultSyntheticGestureSourceType() const OVERRIDE {
    return SyntheticGestureParams::TOUCH_INPUT;
  }

  virtual base::TimeDelta PointerAssumedStoppedTime() const OVERRIDE {
    return base::TimeDelta::FromMilliseconds(pointer_assumed_stopped_time_ms_);
  }

  void set_pointer_assumed_stopped_time_ms(int time_ms) {
    pointer_assumed_stopped_time_ms_ = time_ms;
  }

  virtual float GetTouchSlopInDips() const OVERRIDE {
    return kTouchSlopInDips;
  }

  virtual float GetMinScalingSpanInDips() const OVERRIDE {
    return kMinScalingSpanInDips;
  }

  bool flush_requested() const { return flush_requested_; }
  void ClearFlushRequest() { flush_requested_ = false; }

 private:
  bool flush_requested_;

  int pointer_assumed_stopped_time_ms_;
};

class MockScrollGestureTarget : public MockSyntheticGestureTarget {
 public:
  MockScrollGestureTarget() : total_abs_scroll_distance_length_(0) {}
  virtual ~MockScrollGestureTarget() {}

  gfx::Vector2dF start_to_end_distance() const {
    return start_to_end_distance_;
  }
  float total_abs_scroll_distance_length() const {
    return total_abs_scroll_distance_length_;
  }

 protected:
  gfx::Vector2dF start_to_end_distance_;
  float total_abs_scroll_distance_length_;
};

class MockScrollMouseTarget : public MockScrollGestureTarget {
 public:
  MockScrollMouseTarget() {}
  virtual ~MockScrollMouseTarget() {}

  virtual void DispatchInputEventToPlatform(
      const WebInputEvent& event) OVERRIDE {
    ASSERT_EQ(event.type, WebInputEvent::MouseWheel);
    const WebMouseWheelEvent& mouse_wheel_event =
        static_cast<const WebMouseWheelEvent&>(event);
    gfx::Vector2dF delta(mouse_wheel_event.deltaX, mouse_wheel_event.deltaY);
    start_to_end_distance_ += delta;
    total_abs_scroll_distance_length_ += delta.Length();
  }
};

class MockScrollTouchTarget : public MockScrollGestureTarget {
 public:
  MockScrollTouchTarget() : started_(false) {}
  virtual ~MockScrollTouchTarget() {}

  virtual void DispatchInputEventToPlatform(
      const WebInputEvent& event) OVERRIDE {
    ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type));
    const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event);
    ASSERT_EQ(touch_event.touchesLength, 1U);

    if (!started_) {
      ASSERT_EQ(touch_event.type, WebInputEvent::TouchStart);
      start_.SetPoint(touch_event.touches[0].position.x,
                      touch_event.touches[0].position.y);
      last_touch_point_ = start_;
      started_ = true;
    } else {
      ASSERT_NE(touch_event.type, WebInputEvent::TouchStart);
      ASSERT_NE(touch_event.type, WebInputEvent::TouchCancel);

      gfx::PointF touch_point(touch_event.touches[0].position.x,
                              touch_event.touches[0].position.y);
      gfx::Vector2dF delta = touch_point - last_touch_point_;
      total_abs_scroll_distance_length_ += delta.Length();

      if (touch_event.type == WebInputEvent::TouchEnd)
        start_to_end_distance_ = touch_point - start_;

      last_touch_point_ = touch_point;
    }
  }

 protected:
  gfx::Point start_;
  gfx::PointF last_touch_point_;
  bool started_;
};

class MockSyntheticPinchTouchTarget : public MockSyntheticGestureTarget {
 public:
  enum ZoomDirection {
    ZOOM_DIRECTION_UNKNOWN,
    ZOOM_IN,
    ZOOM_OUT
  };

  MockSyntheticPinchTouchTarget()
      : initial_pointer_distance_(0),
        last_pointer_distance_(0),
        zoom_direction_(ZOOM_DIRECTION_UNKNOWN),
        started_(false) {}
  virtual ~MockSyntheticPinchTouchTarget() {}

  virtual void DispatchInputEventToPlatform(
      const WebInputEvent& event) OVERRIDE {
    ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type));
    const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event);
    ASSERT_EQ(touch_event.touchesLength, 2U);

    if (!started_) {
      ASSERT_EQ(touch_event.type, WebInputEvent::TouchStart);

      start_0_ = gfx::PointF(touch_event.touches[0].position);
      start_1_ = gfx::PointF(touch_event.touches[1].position);
      last_pointer_distance_ = (start_0_ - start_1_).Length();
      initial_pointer_distance_ = last_pointer_distance_;
      EXPECT_GE(initial_pointer_distance_, GetMinScalingSpanInDips());

      started_ = true;
    } else {
      ASSERT_NE(touch_event.type, WebInputEvent::TouchStart);
      ASSERT_NE(touch_event.type, WebInputEvent::TouchCancel);

      gfx::PointF current_0 = gfx::PointF(touch_event.touches[0].position);
      gfx::PointF current_1 = gfx::PointF(touch_event.touches[1].position);

      float pointer_distance = (current_0 - current_1).Length();

      if (last_pointer_distance_ != pointer_distance) {
        if (zoom_direction_ == ZOOM_DIRECTION_UNKNOWN)
          zoom_direction_ =
              ComputeZoomDirection(last_pointer_distance_, pointer_distance);
        else
          EXPECT_EQ(
              zoom_direction_,
              ComputeZoomDirection(last_pointer_distance_, pointer_distance));
      }

      last_pointer_distance_ = pointer_distance;
    }
  }

  ZoomDirection zoom_direction() const { return zoom_direction_; }

  float ComputeScaleFactor() const {
    switch (zoom_direction_) {
      case ZOOM_IN:
        return last_pointer_distance_ /
               (initial_pointer_distance_ + 2 * GetTouchSlopInDips());
      case ZOOM_OUT:
        return last_pointer_distance_ /
               (initial_pointer_distance_ - 2 * GetTouchSlopInDips());
      case ZOOM_DIRECTION_UNKNOWN:
        return 1.0f;
      default:
        NOTREACHED();
        return 0.0f;
    }
  }

 private:
  ZoomDirection ComputeZoomDirection(float last_pointer_distance,
                                     float current_pointer_distance) {
    DCHECK_NE(last_pointer_distance, current_pointer_distance);
    return last_pointer_distance < current_pointer_distance ? ZOOM_IN
                                                            : ZOOM_OUT;
  }

  float initial_pointer_distance_;
  float last_pointer_distance_;
  ZoomDirection zoom_direction_;
  gfx::PointF start_0_;
  gfx::PointF start_1_;
  bool started_;
};

class MockSyntheticTapGestureTarget : public MockSyntheticGestureTarget {
 public:
  MockSyntheticTapGestureTarget() : state_(NOT_STARTED) {}
  virtual ~MockSyntheticTapGestureTarget() {}

  bool GestureFinished() const { return state_ == FINISHED; }
  gfx::PointF position() const { return position_; }
  base::TimeDelta GetDuration() const { return stop_time_ - start_time_; }

 protected:
  enum GestureState {
    NOT_STARTED,
    STARTED,
    FINISHED
  };

  gfx::PointF position_;
  base::TimeDelta start_time_;
  base::TimeDelta stop_time_;
  GestureState state_;
};

class MockSyntheticTapTouchTarget : public MockSyntheticTapGestureTarget {
 public:
  MockSyntheticTapTouchTarget() {}
  virtual ~MockSyntheticTapTouchTarget() {}

  virtual void DispatchInputEventToPlatform(
        const WebInputEvent& event) OVERRIDE {
    ASSERT_TRUE(WebInputEvent::isTouchEventType(event.type));
    const WebTouchEvent& touch_event = static_cast<const WebTouchEvent&>(event);
    ASSERT_EQ(touch_event.touchesLength, 1U);

    switch (state_) {
      case NOT_STARTED:
        EXPECT_EQ(touch_event.type, WebInputEvent::TouchStart);
        position_ = gfx::PointF(touch_event.touches[0].position);
        start_time_ = base::TimeDelta::FromMilliseconds(
            static_cast<int64>(touch_event.timeStampSeconds * 1000));
        state_ = STARTED;
        break;
      case STARTED:
        EXPECT_EQ(touch_event.type, WebInputEvent::TouchEnd);
        EXPECT_EQ(position_, gfx::PointF(touch_event.touches[0].position));
        stop_time_ = base::TimeDelta::FromMilliseconds(
            static_cast<int64>(touch_event.timeStampSeconds * 1000));
        state_ = FINISHED;
        break;
      case FINISHED:
        EXPECT_FALSE(true);
        break;
    }
  }
};

class MockSyntheticTapMouseTarget : public MockSyntheticTapGestureTarget {
 public:
  MockSyntheticTapMouseTarget() {}
  virtual ~MockSyntheticTapMouseTarget() {}

  virtual void DispatchInputEventToPlatform(
        const WebInputEvent& event) OVERRIDE {
    ASSERT_TRUE(WebInputEvent::isMouseEventType(event.type));
    const WebMouseEvent& mouse_event = static_cast<const WebMouseEvent&>(event);

    switch (state_) {
      case NOT_STARTED:
        EXPECT_EQ(mouse_event.type, WebInputEvent::MouseDown);
        EXPECT_EQ(mouse_event.button, WebMouseEvent::ButtonLeft);
        EXPECT_EQ(mouse_event.clickCount, 1);
        position_ = gfx::PointF(mouse_event.x, mouse_event.y);
        start_time_ = base::TimeDelta::FromMilliseconds(
            static_cast<int64>(mouse_event.timeStampSeconds * 1000));
        state_ = STARTED;
        break;
      case STARTED:
        EXPECT_EQ(mouse_event.type, WebInputEvent::MouseUp);
        EXPECT_EQ(mouse_event.button, WebMouseEvent::ButtonLeft);
        EXPECT_EQ(mouse_event.clickCount, 1);
        EXPECT_EQ(position_, gfx::PointF(mouse_event.x, mouse_event.y));
        stop_time_ = base::TimeDelta::FromMilliseconds(
            static_cast<int64>(mouse_event.timeStampSeconds * 1000));
        state_ = FINISHED;
        break;
      case FINISHED:
        EXPECT_FALSE(true);
        break;
    }
  }
};

class SyntheticGestureControllerTest : public testing::Test {
 public:
  SyntheticGestureControllerTest() {}
  virtual ~SyntheticGestureControllerTest() {}

 protected:
  template<typename MockGestureTarget>
  void CreateControllerAndTarget() {
    target_ = new MockGestureTarget();
    controller_.reset(new SyntheticGestureController(
        scoped_ptr<SyntheticGestureTarget>(target_)));
  }

  virtual void SetUp() OVERRIDE {
    start_time_ = base::TimeTicks::Now();
    time_ = start_time_;
    num_success_ = 0;
    num_failure_ = 0;
  }

  virtual void TearDown() OVERRIDE {
    controller_.reset();
    target_ = NULL;
    time_ = base::TimeTicks();
  }

  void QueueSyntheticGesture(scoped_ptr<SyntheticGesture> gesture) {
    controller_->QueueSyntheticGesture(gesture.Pass(),
        base::Bind(&SyntheticGestureControllerTest::OnSyntheticGestureCompleted,
            base::Unretained(this)));
  }

  void FlushInputUntilComplete() {
    while (target_->flush_requested()) {
      while (target_->flush_requested()) {
        target_->ClearFlushRequest();
        time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs);
        controller_->Flush(time_);
      }
      controller_->OnDidFlushInput();
    }
  }

  void OnSyntheticGestureCompleted(SyntheticGesture::Result result) {
    DCHECK_NE(result, SyntheticGesture::GESTURE_RUNNING);
    if (result == SyntheticGesture::GESTURE_FINISHED)
      num_success_++;
    else
      num_failure_++;
  }

  base::TimeDelta GetTotalTime() const { return time_ - start_time_; }

  MockSyntheticGestureTarget* target_;
  scoped_ptr<SyntheticGestureController> controller_;
  base::TimeTicks start_time_;
  base::TimeTicks time_;
  int num_success_;
  int num_failure_;
};

TEST_F(SyntheticGestureControllerTest, SingleGesture) {
  CreateControllerAndTarget<MockSyntheticGestureTarget>();

  bool finished = false;
  scoped_ptr<MockSyntheticGesture> gesture(
      new MockSyntheticGesture(&finished, 3));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  EXPECT_TRUE(finished);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
}

TEST_F(SyntheticGestureControllerTest, GestureFailed) {
  CreateControllerAndTarget<MockSyntheticGestureTarget>();

  bool finished = false;
  scoped_ptr<MockSyntheticGesture> gesture(
      new MockSyntheticGesture(&finished, 0));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  EXPECT_TRUE(finished);
  EXPECT_EQ(1, num_failure_);
  EXPECT_EQ(0, num_success_);
}

TEST_F(SyntheticGestureControllerTest, SuccessiveGestures) {
  CreateControllerAndTarget<MockSyntheticGestureTarget>();

  bool finished_1 = false;
  scoped_ptr<MockSyntheticGesture> gesture_1(
      new MockSyntheticGesture(&finished_1, 2));
  bool finished_2 = false;
  scoped_ptr<MockSyntheticGesture> gesture_2(
      new MockSyntheticGesture(&finished_2, 4));

  // Queue first gesture and wait for it to finish
  QueueSyntheticGesture(gesture_1.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  EXPECT_TRUE(finished_1);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);

  // Queue second gesture.
  QueueSyntheticGesture(gesture_2.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  EXPECT_TRUE(finished_2);
  EXPECT_EQ(2, num_success_);
  EXPECT_EQ(0, num_failure_);
}

TEST_F(SyntheticGestureControllerTest, TwoGesturesInFlight) {
  CreateControllerAndTarget<MockSyntheticGestureTarget>();

  bool finished_1 = false;
  scoped_ptr<MockSyntheticGesture> gesture_1(
      new MockSyntheticGesture(&finished_1, 2));
  bool finished_2 = false;
  scoped_ptr<MockSyntheticGesture> gesture_2(
      new MockSyntheticGesture(&finished_2, 4));

  QueueSyntheticGesture(gesture_1.PassAs<SyntheticGesture>());
  QueueSyntheticGesture(gesture_2.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  EXPECT_TRUE(finished_1);
  EXPECT_TRUE(finished_2);

  EXPECT_EQ(2, num_success_);
  EXPECT_EQ(0, num_failure_);
}

TEST_F(SyntheticGestureControllerTest, GestureCompletedOnDidFlushInput) {
  CreateControllerAndTarget<MockSyntheticGestureTarget>();

  bool finished_1, finished_2;
  scoped_ptr<MockSyntheticGesture> gesture_1(
      new MockSyntheticGesture(&finished_1, 2));
  scoped_ptr<MockSyntheticGesture> gesture_2(
      new MockSyntheticGesture(&finished_2, 4));

  QueueSyntheticGesture(gesture_1.PassAs<SyntheticGesture>());
  QueueSyntheticGesture(gesture_2.PassAs<SyntheticGesture>());

  while (target_->flush_requested()) {
    target_->ClearFlushRequest();
    time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs);
    controller_->Flush(time_);
  }
  EXPECT_EQ(0, num_success_);
  controller_->OnDidFlushInput();
  EXPECT_EQ(1, num_success_);

  while (target_->flush_requested()) {
    target_->ClearFlushRequest();
    time_ += base::TimeDelta::FromMilliseconds(kFlushInputRateInMs);
    controller_->Flush(time_);
  }
  EXPECT_EQ(1, num_success_);
  controller_->OnDidFlushInput();
  EXPECT_EQ(2, num_success_);
}

gfx::Vector2d AddTouchSlopToVector(const gfx::Vector2d& vector,
                                   SyntheticGestureTarget* target) {
  const int kTouchSlop = target->GetTouchSlopInDips();

  int x = vector.x();
  if (x > 0)
    x += kTouchSlop;
  else if (x < 0)
    x -= kTouchSlop;

  int y = vector.y();
  if (y > 0)
    y += kTouchSlop;
  else if (y < 0)
    y -= kTouchSlop;

  return gfx::Vector2d(x, y);
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchVertical) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(89, 32);
  params.distances.push_back(gfx::Vector2d(0, 123));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(AddTouchSlopToVector(params.distances[0], target_),
            scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchHorizontal) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(12, -23);
  params.distances.push_back(gfx::Vector2d(-234, 0));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(AddTouchSlopToVector(params.distances[0], target_),
            scroll_target->start_to_end_distance());
}

void CheckIsWithinRangeSingle(float scroll_distance,
                              int target_distance,
                              SyntheticGestureTarget* target) {
  if (target_distance > 0) {
    EXPECT_LE(target_distance, scroll_distance);
    EXPECT_LE(scroll_distance, target_distance + target->GetTouchSlopInDips());
  } else {
    EXPECT_GE(target_distance, scroll_distance);
    EXPECT_GE(scroll_distance, target_distance - target->GetTouchSlopInDips());
  }
}

void CheckSingleScrollDistanceIsWithinRange(
    const gfx::Vector2dF& scroll_distance,
    const gfx::Vector2d& target_distance,
    SyntheticGestureTarget* target) {
  CheckIsWithinRangeSingle(scroll_distance.x(), target_distance.x(), target);
  CheckIsWithinRangeSingle(scroll_distance.y(), target_distance.y(), target);
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchDiagonal) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(0, 7);
  params.distances.push_back(gfx::Vector2d(413, -83));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  CheckSingleScrollDistanceIsWithinRange(
      scroll_target->start_to_end_distance(), params.distances[0], target_);
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchLongStop) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  // Create a smooth scroll with a short distance and set the pointer assumed
  // stopped time high, so that the stopping should dominate the time the
  // gesture is active.
  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(-98, -23);
  params.distances.push_back(gfx::Vector2d(21, -12));
  params.prevent_fling = true;

  target_->set_pointer_assumed_stopped_time_ms(543);

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  CheckSingleScrollDistanceIsWithinRange(
      scroll_target->start_to_end_distance(), params.distances[0], target_);
  EXPECT_GE(GetTotalTime(), target_->PointerAssumedStoppedTime());
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchFling) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  // Create a smooth scroll with a short distance and set the pointer assumed
  // stopped time high. Disable 'prevent_fling' and check that the gesture
  // finishes without waiting before it stops.
  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(-89, 78);
  params.distances.push_back(gfx::Vector2d(-43, 19));
  params.prevent_fling = false;

  target_->set_pointer_assumed_stopped_time_ms(543);

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  CheckSingleScrollDistanceIsWithinRange(
      scroll_target->start_to_end_distance(), params.distances[0], target_);
  EXPECT_LE(GetTotalTime(), target_->PointerAssumedStoppedTime());
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureTouchZeroDistance) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(-32, 43);
  params.distances.push_back(gfx::Vector2d(0, 0));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseVertical) {
  CreateControllerAndTarget<MockScrollMouseTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
  params.anchor.SetPoint(432, 89);
  params.distances.push_back(gfx::Vector2d(0, -234));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseHorizontal) {
  CreateControllerAndTarget<MockScrollMouseTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
  params.anchor.SetPoint(90, 12);
  params.distances.push_back(gfx::Vector2d(345, 0));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, SingleScrollGestureMouseDiagonal) {
  CreateControllerAndTarget<MockScrollMouseTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
  params.anchor.SetPoint(90, 12);
  params.distances.push_back(gfx::Vector2d(-194, 303));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(params.distances[0], scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, MultiScrollGestureMouse) {
  CreateControllerAndTarget<MockScrollMouseTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
  params.anchor.SetPoint(90, 12);
  params.distances.push_back(gfx::Vector2d(-129, 212));
  params.distances.push_back(gfx::Vector2d(8, -9));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(params.distances[0] + params.distances[1],
            scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, MultiScrollGestureMouseHorizontal) {
  CreateControllerAndTarget<MockScrollMouseTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
  params.anchor.SetPoint(90, 12);
  params.distances.push_back(gfx::Vector2d(-129, 0));
  params.distances.push_back(gfx::Vector2d(79, 0));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  // This check only works for horizontal or vertical scrolls because of
  // floating point precision issues with diagonal scrolls.
  EXPECT_FLOAT_EQ(params.distances[0].Length() + params.distances[1].Length(),
                  scroll_target->total_abs_scroll_distance_length());
  EXPECT_EQ(params.distances[0] + params.distances[1],
            scroll_target->start_to_end_distance());
}

void CheckIsWithinRangeMulti(float scroll_distance,
                             int target_distance,
                             SyntheticGestureTarget* target) {
  if (target_distance > 0) {
    EXPECT_GE(scroll_distance, target_distance - target->GetTouchSlopInDips());
    EXPECT_LE(scroll_distance, target_distance + target->GetTouchSlopInDips());
  } else {
    EXPECT_LE(scroll_distance, target_distance + target->GetTouchSlopInDips());
    EXPECT_GE(scroll_distance, target_distance - target->GetTouchSlopInDips());
  }
}

void CheckMultiScrollDistanceIsWithinRange(
    const gfx::Vector2dF& scroll_distance,
    const gfx::Vector2d& target_distance,
    SyntheticGestureTarget* target) {
  CheckIsWithinRangeMulti(scroll_distance.x(), target_distance.x(), target);
  CheckIsWithinRangeMulti(scroll_distance.y(), target_distance.y(), target);
}

TEST_F(SyntheticGestureControllerTest, MultiScrollGestureTouch) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(8, -13);
  params.distances.push_back(gfx::Vector2d(234, 133));
  params.distances.push_back(gfx::Vector2d(-9, 78));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  CheckMultiScrollDistanceIsWithinRange(
      scroll_target->start_to_end_distance(),
      params.distances[0] + params.distances[1],
      target_);
}

TEST_F(SyntheticGestureControllerTest, MultiScrollGestureTouchVertical) {
  CreateControllerAndTarget<MockScrollTouchTarget>();

  SyntheticSmoothScrollGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.anchor.SetPoint(234, -13);
  params.distances.push_back(gfx::Vector2d(0, 133));
  params.distances.push_back(gfx::Vector2d(0, 78));

  scoped_ptr<SyntheticSmoothScrollGesture> gesture(
      new SyntheticSmoothScrollGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockScrollGestureTarget* scroll_target =
      static_cast<MockScrollGestureTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_FLOAT_EQ(
      params.distances[0].Length() + params.distances[1].Length() +
          target_->GetTouchSlopInDips(),
      scroll_target->total_abs_scroll_distance_length());
  EXPECT_EQ(AddTouchSlopToVector(params.distances[0] + params.distances[1],
                                 target_),
            scroll_target->start_to_end_distance());
}

TEST_F(SyntheticGestureControllerTest, PinchGestureTouchZoomIn) {
  CreateControllerAndTarget<MockSyntheticPinchTouchTarget>();

  SyntheticPinchGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.scale_factor = 2.3f;
  params.anchor.SetPoint(54, 89);

  scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockSyntheticPinchTouchTarget* pinch_target =
      static_cast<MockSyntheticPinchTouchTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(pinch_target->zoom_direction(),
            MockSyntheticPinchTouchTarget::ZOOM_IN);
  EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor());
}

TEST_F(SyntheticGestureControllerTest, PinchGestureTouchZoomOut) {
  CreateControllerAndTarget<MockSyntheticPinchTouchTarget>();

  SyntheticPinchGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.scale_factor = 0.4f;
  params.anchor.SetPoint(-12, 93);

  scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockSyntheticPinchTouchTarget* pinch_target =
      static_cast<MockSyntheticPinchTouchTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(pinch_target->zoom_direction(),
            MockSyntheticPinchTouchTarget::ZOOM_OUT);
  EXPECT_FLOAT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor());
}

TEST_F(SyntheticGestureControllerTest, PinchGestureTouchNoScaling) {
  CreateControllerAndTarget<MockSyntheticPinchTouchTarget>();

  SyntheticPinchGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.scale_factor = 1.0f;

  scoped_ptr<SyntheticPinchGesture> gesture(new SyntheticPinchGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockSyntheticPinchTouchTarget* pinch_target =
      static_cast<MockSyntheticPinchTouchTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_EQ(pinch_target->zoom_direction(),
            MockSyntheticPinchTouchTarget::ZOOM_DIRECTION_UNKNOWN);
  EXPECT_EQ(params.scale_factor, pinch_target->ComputeScaleFactor());
}

TEST_F(SyntheticGestureControllerTest, TapGestureTouch) {
  CreateControllerAndTarget<MockSyntheticTapTouchTarget>();

  SyntheticTapGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT;
  params.duration_ms = 123;
  params.position.SetPoint(87, -124);

  scoped_ptr<SyntheticTapGesture> gesture(new SyntheticTapGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockSyntheticTapTouchTarget* tap_target =
      static_cast<MockSyntheticTapTouchTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_TRUE(tap_target->GestureFinished());
  EXPECT_EQ(tap_target->position(), params.position);
  EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms);
  EXPECT_GE(GetTotalTime(),
            base::TimeDelta::FromMilliseconds(params.duration_ms));
}

TEST_F(SyntheticGestureControllerTest, TapGestureMouse) {
  CreateControllerAndTarget<MockSyntheticTapMouseTarget>();

  SyntheticTapGestureParams params;
  params.gesture_source_type = SyntheticGestureParams::MOUSE_INPUT;
  params.duration_ms = 79;
  params.position.SetPoint(98, 123);

  scoped_ptr<SyntheticTapGesture> gesture(new SyntheticTapGesture(params));
  QueueSyntheticGesture(gesture.PassAs<SyntheticGesture>());
  FlushInputUntilComplete();

  MockSyntheticTapMouseTarget* tap_target =
      static_cast<MockSyntheticTapMouseTarget*>(target_);
  EXPECT_EQ(1, num_success_);
  EXPECT_EQ(0, num_failure_);
  EXPECT_TRUE(tap_target->GestureFinished());
  EXPECT_EQ(tap_target->position(), params.position);
  EXPECT_EQ(tap_target->GetDuration().InMilliseconds(), params.duration_ms);
  EXPECT_GE(GetTotalTime(),
            base::TimeDelta::FromMilliseconds(params.duration_ms));
}

}  // namespace

}  // namespace content


text:
Cheap Jerseys 15866
Revision as of 15:01, 24 September 2019 by Bennett8834 (Talk | contribs) (Created page with "Suitable for all skin types ideal for dry skin. 70 pads. 4.5 oz. At this classic NOLA establishment, the raw oysters are a tradition, as Guy Fieri found out on Diners, Drive I...")
Suitable for all skin types ideal for dry skin. 70 pads. 4.5 oz. At this classic NOLA establishment, the raw oysters are a tradition, as Guy Fieri found out on Diners, Drive Ins and Dives. In 1919, original owner Joe Casamento shucked the first oyster at his then newly opened restaurant. Nearly a century later, diners are crowding in for the raw oysters offered by third generation owner CJ Gerdes.
When I look at pictures of Pharrell Williams, I assume he is what all men aim to be a successful man who can wear shorts to all events. Business Insider labels the act of wearing shorts to an office as a "faux pas." It's hard for people to take men wearing shorts seriously and doing so may actually be detrimental to another person's perception of you. Many a Reddit user is against the fashion choice, although the language in their reasoning is unsurprisingly more colorful..
Fine, Francona said. Likes to pitch. I hope he likes to pitch here. Definitely the first few days probably, some of the rehearsals. I remember a lot of things like landing in LA for the first time, seeing my apartment for wholesale jerseys the first time. Things that have nothing to do with really the movie, just the experience of being nineteen and going to the West Coast for the first time.
When asked whether Malmo Levine's marijuana was returned in the smash and grab robbery, Sgt. Brian Montague, a VPD media liaison officer, said in an email to the Courier: "I don't believe that is the case. Regarding this latest robbery, stolen and recovered personal property will be processed and returned to the owners, but Mr.
Cheap Jerseys from china He currently sits on the board of the Pasadena Tournament of Roses Association. Miller holds an associate degree from PCC, a bachelors degree from the University of La Verne, and a masters degree in Public Administration from California State University, Northridge. He is currently working toward a doctorate at La Verne.. Cheap Jerseys from china
Middle infielders (shortstops and second basemen) use smaller gloves, usually in the 11.5 inch range, and they feature shallow webs, which include Pro I, Single Post, 2 Piece Closed. Third basemen gloves have deeper webs (Dual Post, Closed, and Modified Trapeze, to name a few) and tend to measure up to 12 inches. Gloves for pitchers should be similar in size to 3B mitts.
Cheap Jerseys china She then launched the Dr. Phil show to immediate success. As co executive producer, Kandi oversaw five producing teams to create first class television in daytime and primetime specials.. Although the cases mattered greatly to John Frank, visiting the Supreme Court of the United States was, to him, no big deal. Frank had worked there as a law clerk. He had, by spring 1950, returned there regularly to hear arguments or just to visit friends (with Justice Black heading that list). Cheap Jerseys china
For Scotch, you end up paying more because of one simple reason it Scotch. The two beginner Scotch I recommend to people are Macallen 12 year (Mac12) and Balvenie Carribean Cask. Both are fron the Highland region, which is where most people start, both are smooth and sans peat.
cheap jerseys But which will it be? Ted Diadiun President Trump's attack on four Democrats is a tale of two political turning points. But which will it be? Ted Diadiun Where will it all end? On Nov. 3, 2020. Lovers + Friends James Romper in White. size L (also in S,XXS,XS,M,XL) Lovers + Friends James Romper in White. size L (also in. cheap jerseys
Pulling an all nighter as most college students do prevents the brain from removing these toxins. Last year Nedergaard and her colleagues found a network that drains waste from the brain which they call the glymphatic system. What the system does is flush out any brain waste into our bloodstream.
Cheap Jerseys free shipping Section 2's "on account of race" standard to determine discrimination in voting has evolved from one of quasi intent determined by a totality of the circumstances, to a short lived intent requirement, followed by an enhanced disparate impact analysis, culminating in a more recent standard that simulates proximate cause. This Article proposes a test for Section 2 vote denial claims that comports with the narrowing construction of disparate impact claims and reclaims the robust contextual analysis that the VRA contemplates. The "causal context" test proposed here is anchored to "core values" mined from Section 2's legislative history, particularly the "Senate factors." The causal context analysis relies on proof of explicit or implicit bias, as well as circumstances internal and external to elections that give rise to disparate vote denial, without requiring proof of intent. Cheap Jerseys free shipping
wholesale nfl jerseys Skirt measures approx 28 in length. Imported. IRO WQ48. Jim Strother, EVP, General Counsel, including Government Relations. He has been in his current role since 2003. He was named deputy general counsel in 2001 and was EVP, General Counsel and Secretary of Wells Fargo Home Mortgage 1998 2001. wholesale nfl jerseys
wholesale jerseys from china The Oilers go into Tuesday NHL version of Powerball 7th, just behind Anaheim. Odds are 6.5%. Colorado overwhelmingly has the best odds at 18.5%. "I don't see any benefit to using a global drive system over a self limiting or thresholded system on an island population," asserts Akbari. "It might be a bit more work, with more releases required." But Akbari notes that for a field trial, all of the same ecology and the population dynamics could be understood from any of these gene drives. And if everything goes well, then the introduction of gene drives to mainland Africa might be a consideration.. wholesale jerseys from china
cheap nfl jerseys So I am new to Illustrator, I develop GIS maps and can generally do what I want in ArcMap. I working on a project that is a report with an attached MapBook and figures. So the end product is a scientific report and pretty MapBook, but the kicker is, I have to submit the digital report to the government, and they hate anything with a large file size. cheap nfl jerseys
The deep thinking comic thanks the doctors and nurses at his New York hospital, saying they they had a precious jewel of comedy in their hands. Announced his heart attack last week, saying on Twitter his heart broke on Valentine Day, He said he was doing well but if he dropped dead would see a funeral like Al Capone! says the attack made him reflect, realizing aren guaranteed tomorrow. 12, 2010, file photo, Colin Quinn discusses "Long Story Short," his one man theatrical show moving to Broadway, at a news conference in New York.
"As many as 353 coal fired power generators in 31 states representing up to 59 GW of power capacity are no longer economically viable compared with cleaner, more affordable energy sources," UCS said in a statement. Was produced by burning coal, the report stated. Coal fired power plants have outlived their 30 year lifespan with 17 percent being older than half a century," the report stated..
wholesale jerseys Individuals tend to believe that when comparing themselves to others they are less vulnerable to potential risks. This is referred to as comparative optimism, whereby individuals believe that they are immune from negative experiences that can happen to others. The current study examined comparative optimism judgements for the likelihood of experiencing cyber bullying. wholesale jerseys
wholesale nfl jerseys from china Products are Unisex and One Size Fits Most. From yoga, to cross fit, to Football, this lightweight Pro sport headband is awesome, stays securely in place, wicks moisture, dries quick and feels great! Junk is a performance line of headbands, manufactured in the USA of premium fabrics for athletes by athletes. Junk's technical t shirt fabric is a breakthrough technology specifically designed to keep you cool while emulating a super comfortable t shirt feel wholesale nfl jerseys from china.
wholesale jerseys http://info.sarhosting.ru/index.php?page=user&action=pub_profile&id=76199
Retrieved from "http://didattica.agentgroup.unimore.it/wiki/index.php?title=Cheap_Jerseys_15866&oldid=7139"

redpajama_set_name: RedPajamaCommonCrawl


The following tutorial explains the process of installing Kubuntu 9.04 to a USB Flash Drive using the Ubuntu team's USB Creator. Kubuntu is a derivative of Ubuntu that, instead of Gnome, utilizes a KDE desktop environment. This Kubuntu Flash Drive installation method does make use of the persistence feature, enabling you to save your desktop changes, settings and bookmarks and then restore those changes on each boot.
If all goes well, you should now be booting from Kubuntu 9.04 from your USB Flash Drive, and Kubuntu should automatically save the changes you make and restore them on subsequent boots.


text:
Sloanea mexicana är en tvåhjärtbladig växtart som beskrevs av Paul Carpenter Standley. Sloanea mexicana ingår i släktet Sloanea och familjen Elaeocarpaceae. Inga underarter finns listade i Catalogue of Life.

Källor

Harsyreordningen
mexicana

redpajama_set_name: RedPajamaWikipedia


text:
Q: Primefaces dropdown icon alignment? Hi guys I have a menu bar with submenu bars, but the icon if  a submenu exists is shown above. I want to set the icon right from the menu field. So i hope anyone can help. Here you can see a picture :  https://www.dropbox.com/s/h8yqq7d2mirj0cq/bar.JPG. Sry for the bad quality of the image.
I am using JSF 2.1, primefaces 3.5 and a jquery theme from primefaces .
Menubar
<p:menubar styleClass="affaires"   style="position: absolute !important; bottom: 0px !important; vertical-align: bottom !important; list-style: none; width: 100%; text-align: center;"  >
            <p:menuitem value="Home" url="#"/>

            <p:submenu  label="Company">
                <p:menuitem  value="Create Company" url="#"/>
                <p:menuitem   value="Show Companies" url="companies.xhtml"/>
            </p:submenu>

            <p:submenu  label="Taskbox" >
                <p:menuitem value="Inbox" url="taskbox.xhtml"/>
                <p:menuitem value="Sent" url="#"/>
                <p:menuitem value="Trash" url="#"/>
                <p:menuitem value="New Message" url="#"/>
            </p:submenu>

            <p:submenu label="#{loginBean.user.USER_NAME}" >
                <p:menuitem value="Logbook" url="#"/>
                <p:submenu label="Settings" url="#">
                    <p:menuitem value="Account" url="#"/>
                    <p:menuitem value="Contact" url="#"/>
                </p:submenu>
                <p:menuitem value="Logout" url="#"/>
            </p:submenu>

            <p:submenu label="Administration" icon="">
                <p:menuitem value="Users" url="#"/>
                <p:menuitem value="Edit Help" url="#"/>
                <p:menuitem value="Edit GTC" url="#"/>
            </p:submenu>

            <p:menuitem value="Help" url="#"/>

    </p:menubar>

theme.css
 .affaires .ui-menuitem-text{ color:black;}

 .affaires .ui-menu-child{background: white;}

 ul li.ui-menuitem-active>a{
    background-image: none !important;
    background-color:red !important;
}

li ul li.ui-menuitem-active>a{
    background-image: none !important;
    background-color:green !important;
}

A: I have found a solution
Configure the following tag in the theme.css
/* left-aligned */
.ui-menu .ui-icon {
  top: .2em;
  left: .2em;
}

redpajama_set_name: RedPajamaStackExchange


text:
Crewe Results & Fixtures
Crewe News
Match Zone
Crewe Player Profiles
Match Preview – Eastleigh (H, FA Cup)
Date: 10th December 2019 at 8:00am
Written by: Steve Johnson
This evening sees us host National League side Eastleigh in the FA Cup 2nd Round replay, following a 1-1 draw 10 days ago, with the winner advancing to face Barnsley at home in Round 3 (a game that will take place on the first Sunday of the New Year with a 2.01pm kick-off).
As they come into the game sitting in 13th place in the National League, they have beaten Notts County, Solihull Moors, Boreham Wood, Chesterfield, Maidenhead United and Harrogate Town, they have drawn with Sutton United, Dagenham & Redbridge, Ebbsfleet United, Bromley, Hartlepool United, Chorley, Woking, Halifax Town and Ebbsfleet United while they have lost to Yeovil Town, Barrow, Stockport County, Barnet, AFC Fylde, Torquay United, Dover Athletic, Torquay United and Wrexham.
In the FA Cup, they have advanced past Welling United after a replay in the 4th Qualifying Round before knocking out Stourbridge in Round 1, again after a replay.
Looking back in the archives, the two teams only met the once before the original game, also in the FA Cup, in November 2015 where Ben Strevens scored a 75th-minute penalty past substitute goalkeeper Dan Nizic following a red card to Ben Garratt.
Who are the officials for the game?
The officials for this game see Sam Purkiss as the man in the middle where he is assisted by Oliver Bickle and Hristo Karaivanov with Aaron Jackson being the fourth official. This is the first game that Purkiss will have refereed the Alex.
Your Comment Cance Reply


The American Museum of Natural History in New You are able to and also the Museum of Ethnograhy in Hanoi with support in the Ford Foundation and a lot of diplomatic effort, produced an attractive exhibit that featured the different ethnic categories of Vietnam. The exhibit opened up in the AMNH in New You are able to City before you go to its permanent home in Hanoi.
It had been a functional trip in my wife Maritza who had been there in her own role because the AMNH Director of your practice. I'm in awe of her capability to have conducted this type of dynamic, positive, three week lengthy chance to learn together with her Vietnamese students.
I learned enough Vietnamese to obtain around, photo documented occasions, and stored numerous museum things running easily. I had been a great ambassador and attempted to fix a couple of fences between your USA and also the elderly as well as their children.
My summary of Barranquilla Colombia was throughout the Circus season of 1970 the very first stop of the "epic" three month hitch hiking trek through South Usa that, as the saying goes, forever altered my existence.
A count from the in-laws and regulations and Colombian "cousins" would indicate that i'm now about 85% Colombian.
To create a lengthy story short, I bused and trucked lower the Andes, Colombia to Southern Chile after which up through Argentina and South america.
The on top of the train ride from Cuzco Peru to Machu Pichu, through individuals deep roaring Urubamba river gorges, and also the 72 hours messing around within the Incan ruins were deeply satisfying. In individuals days you can nudge the llamas aside, hang your hammock within the old roofless structures and allow the mountain tops/clouds envelope you as lengthy while you felt enjoy it.
Visit Bergen County NJ home cost lists: for quantity of houses for purchase, cheapest home cost, average home cost and greatest home cost for every town in Bergen County.
Since 1990: helping consumers of Northern NJ property make knowledgeable property investment decisions!


CareerDiva - Career Advice, Labor Issues, Job News and Opportunities, Balancing Work and Family. » Are women biased toward women?
These are some of the women-empowering tweets I came across on Twitter this morning. I started looking into Kelly Clarkson today after reading a few stories about her concert at Radio City Music Hall Saturday and how she took ongoing criticism of her looks and turned it to her advantage.
Ms. Clarkson appeared onstage beneath a screen blaring cruel descriptors ("fat," "failure") and fake headlines — "Kelly Clarkson is fat," "Makeup mishap for Kelly" — and proceeded to unleash her angst.
It's a great lesson for women and girls everywhere.
Another thing to consider is whether these ongoing attacks on Clarkson point to a bigger problem. Take the tweets above. When we think about the distorted, female body image in this country, we often want to blame men. But guess what gals, women may be the worst offenders. The tweets I included in this post were all from women tweeters. Yes, there were lots of nasty fat tweets about Clarkson authored by men, but it's the tweets by women that are the most disturbing.
I know, there's a beauty bias in entertainment, and in the workplace at large. "The real problem with the 'beauty bias' is that it systematically discriminates against women who don't have the right genetics, lack the resources to improve their situation or simply aren't interested in conforming to a model of beauty that reinforces racial and ethnic stereotypes while diminishing their chances for self-expression," said Julie Ragatz, a director at the Center for Ethics in Financial Services at The American College.
But maybe women are behind as much of the bias as we blame the entrenched white-male leadership in Corporate America to be.
Wow, this is quite horrible that women are biased toward other women. I understand that there is a standard of beauty when you're in the spotlight, but it's horrible to see how other women use these standards against each other. Maybe its because I work at a staffing soluions company as an executive recruiter that makes this matter so surprising. As recruiters, we are taught not to judge candidates appearances when trying to fill positions as it can be considered discrimination and no one wants to be accused of that.
I think it's natural that we judge each other. We just need to be aware of it and stomp it down when ever possible.


It was in the spring of 1957 that Mario Giacomelli went to Scanno, a small village nestled in the Sagittario Valley, whose charm had previously attracted Henri Cartier-Bresson. In the 1970s John Szarbowski, head of photography department at the MOMA in New York, purchased a number of images from his series entitled 'Scanno' and published them in the volume "Looking at Photographs: 100 Pictures from the collection of the Museum of Modern Art".
"I went back to Scanno, but the second time it was snowing so I headed back.
I only worked properly the first time: the second time I didn't even get to rest on the village walls (…), not even for a moment.
I went to Scanno (…) with my friend Renzo Tortelli. We took our Fiat 500 and drove through the night. On Saturday morning, when the people of Scanno returned to their village with bundles of wood balancing on their heads, I was there, ready and waiting, to take photographs.
I was there on a Saturday, a working day, and the day of rest.
I love remembering how I first arrived at Scanno: while my friend was driving the 500, one of the little old-fashioned ones, cows and women dressed in black started to appear.
When I saw the scene I opened the window and tac, started snapping!
But the car was still moving and I hurt my knee (…).
There is a photo (…) when Renzo was still parking, but I had already taken the shots, just imagine!
I was so swept away by the desire to capture the moment!
"Mario Giacomelli. La mia vita intera", edited by Simona Guerra – Bruno Mondadori.
His picture story "Scanno", published in the 1950s, brought him to the attention of critics and the cultured public alike.
The photographs show a trespassed village, taken apart and reconstructed by Giacomelli's mechanical eye.
Talking about this experience, Giacomelli said: "(I went to Scanno) because I wanted to do something different and also because every photographer in the world has been to Scanno.
"I hate images that remain the way the camera see them.
Taking a subject and not making any modifications is a waste of time (…) for me, the joy of photography emerged when I was in Scanno.
"I was taking photographs on a white street. The cows and hens were keeping me company. At a certain point I felt myself being pushed forward. I turned around, annoyed. It was a cow. Its nose had made my shoulders all wet.
Perhaps it was being friendly. For me it was truly beautiful seeing this "family" of men, women, cows and hens. The women sitting outside. The postman delivering letters along the street.
I don't remember anything about what I did yesterday. But I remember everything about Scanno. My relationships with the people of Scanno were fleeting, but for me very long. I often spoke to the woman who prepared my meals. The true human relationship was not the temporal one, rather it was felt inside your pockets, like a friend.
Nobody greeted me in the street, but for me it was as if everybody was greeting me.
Perhaps some people did look at me with diffidence, but in the end they came up to me and said "Jamme ritrattame", "go on, photograph me".
I went to Scanno at two different points in my life. As a musician and as a photographer. As a musician. In the late 1980s I was studying at the L'Aquila Conservatoire and I visited the village as part of a tour of Abruzzo with my first chamber group. Mozart, Beethoven, Respighi. Cold, snow. Sheet music and instruments in churches and auditoriums. After concert dinners and a long journey back to L'Aquila.
As a photographer. In the late 1990s I went back to Scanno after studying Cartier-Bresson's photographs. Lucid, brilliant, effective and striking. But the real flash of inspiration, immediate yet acutely painful, came with Mario Giacomelli's "anti-photographs". "Anti-photographs" in that Giacomelli adopted an irrational and not very technical/technological approach to his camera and photography in general.
But you can't ask a poet to explain what and how they write.
Giacomelli was one of the few poets in international photography.
A poet who, with his manual Kobell camera, one single lens and a flash, captured the essence of Abruzzo, its land, its people, in the way you capture the soul in an X-ray.
Unconsciously, unintentionally he wrote a photography manual explaining how with just two colours – black and white – brought to the extremes, you can tell the story of daily life in a walled village bound to the endless cycle of the seasons.
Among the faces and bodies of men buried under hats and cloaks, the faces and bodies of women dressed in their everyday clothes, the animals move freely around the narrow streets while the children dressed in short trousers play among their hooves.
The burnt light in the photographs makes the hard reality of life unreal and fantastic, a hard life filled with hours of backbreaking work in the fields and kitchens. Time entirely dictated by the rising and setting of the sun, the sun captured in the 6x8 negatives inside the Kobell, which Giacomelli then over/underexposed in the dark room to tell the paradoxical story of life.
Of the numerous photos taken during his first trip to Scanno in 1957, for this exhibition I selected four that focus on two significant anthropological matters: women's clothing, photographed from the front and the back, with their black and white and grey linen brought to the extreme, the exasperation of daily femininity that never changes.
And the village seen from the front, nowadays known as the viewpoint of the photographers: roofs, walls, houses and narrow streets enveloped in a twilight, noisy grey, born perhaps from the mist mixed with the fire coming from the chimneys.
Framed by the surrounding woodland.
I have sought to talk about my emotions, in the hope that they are similar to Giacomelli's, to my students on the advanced course, active protagonists of various photographic trips we've taken to Scanno over the past four years.
And the result of their photographic efforts stand before the eyes of everyone: essential, effective, concrete images that are a sincere and felt homage to the work of a great poet. Never forgotten. Never remembered enough.
Simone Giacomelli, Mario's son, for his father's original photographs displayed at this exhibition.
Simona Guerra, photography critic and exhibition curator, author of the book "Mario Giacomelli. La mia vita intera", published by Bruno Mondadori, who accepted the idea of dedicating a homage to her uncle, whose photography heritage she looks after.
Claudio d'Alessandro, his wife Maria and children Alessandro and Flavio, Matilde Landriscina. Without their friendship and concrete support, I would not have been able to organise this exhibition.
All the friends of the Scanno-based Cultural Association "Appuntamento con la Tradizione – Vivi il Costume".
Livia Pasqualini for her patience and affection.
A VILLAGE. A LOVE STORY.


text:
"Trailblazers in Habits" to Have Westchester Premiere Nov. 14
Trailblazers in Habits, the new documentary about the pioneer work of Maryknoll Sisters, the first U.S.-based congregation of Catholic women religious dedicated to foreign mission, will have its Westchester premiere showing on Friday, November 14, 2014, at 7 p.m. at the Ossining Public Library, 53 Croton Avenue, Ossining, NY. Admission is free. Light refreshments will follow.
Produced by award-winning filmmaker Nancy Tong, the film tells the story, in the Sisters' own words, of the congregation's work in education, healthcare, and the cause of social justice. A moving and absorbing chronicle that spans 100 years and several continents, the film celebrates the intelligence and tenacity, the love, compassion and generosity of these early feminists. The first U.S.-based congregation of Roman Catholic women religious dedicated to foreign mission, Maryknoll Sisters was founded in Ossining in 1912.
Production of the film was almost entirely funded by donations from the thousands who attended Maryknoll schools around the world. Maryknollers wanted a way to tell the full story of the Sisters' contributions to their communities, from the building of schools and hospitals around the world to helping lay the foundation of Hong Kong's social welfare system.
By turns tragic and joyous, yet always inspirational, this insightful documentary by award-winning director Nancy Tong, is a revealing portrait of these courageous women and a timely testimony to the Sisters' lifelong dedication to helping the disenfranchised.
For more information please call 866-662-9900 or visit www.maryknollsisters.org.
Sisters to Join People's Climate March
Sister M. James Florence Blanchard


text:
Egypt PEST Evaluation Petroleum Transportation Industry
Petroleum transportation industryOil was exploited in the Roman province of Dacia , now in Romania, exactly where it was named starting of the Romanian petroleum sector dates back to 1769 with the documentation of rudimentary crude oil extraction in Moldavia by Dimitrie Cantemir, a former Moldavia King, who published the account in "Descriptio Moldavie."The first documents attesting the existence of fuel oil on today's territory of Romania do not tell us, even so, how oil was extracted or what it was used for. Hydrogen is frequently pointed out as the power source of the future. The methods in making use of hydrogen as a transportation fuel consist in generating hydrogen by electrolysis of water or by extracting it from hydrocarbons. Then, compressing or converting hydrogen into liquid form and storing it on-board a car. Finally, making use of fuel cell to create electricity on demand from the hydrogen to propel a motor vehicle. Hydrogen fuel cells are more effective than gasoline and create near-zero pollutants. But hydrogen suffers from many difficulties, specifically because a lot of energy can be wasted in its production, transfer and storage. Hydrogen manufacturing calls for electrical energy production. Apart from, hydrogen has a very low energy density and calls for quite low temperature and very high stress storage tank adding weight and volume to a automobile. This suggests that liquid hydrogen fuel would be a better alternative for ship and aircraft propulsion.
The Energy and Petroleum Regulatory Authority will regulate generation, importation, exportation, transmission, distribution, provide and use of electrical energy with the exception of the licensing of nuclear facilities. It will also regulate importation, refining, exportation, transportation, storage and sale of petroleum and petroleum merchandise with the exception of crude oil, as well as manage production, conversion, distribution, supply, marketing and use of renewable power.
Freight transportation is dominated by rail and maritime shipping, the two most energy effective modes. Coastal and inland waterways also supply an power effective approach of transporting passengers and cargoes. A tow boat moving a typical load of 15 barges in tow holds the equivalent of 225 rail auto loads or 870 truck loads. Since of these power positive aspects, brief sea shipping is been regarded as a transport alternative and part of national transport policies. The rationale for favoring coastal and inland navigation is primarily based on decrease power consumption rates of shipping and the basic overall smaller sized externalities of water transportation.
Transportation And Energypetroleum industry transport safety forum
petroleum industry transport safety forumOil was exploited in the Roman province of Dacia , now in Romania, exactly where it was known as beginning of the Romanian petroleum industry dates back to 1769 with the documentation of rudimentary crude oil extraction in Moldavia by Dimitrie Cantemir, a former Moldavia King, who published the account in "Descriptio Moldavie."The very first documents attesting the existence of fuel oil on today's territory of Romania do not inform us, nonetheless, how oil was extracted or what it was used for. To go forward, pipe coating has been an substantial industry for practically a century and spurred ahead at the advent of the Oil & Gas industries back in the 1960's and in later years the middle east water transmission market. 9. Exploration for oil and gas and their production, transportation and storage. But with each other with other trends taking shape, electric vehicle growth could potentially revolutionize transportation adequate for oil consumption to cease expanding within this time frame.
Activities can consist of processing, storage and transportation of crude oil and organic gas. 1917 – The initial gas transportation pipeline of Europe is put into operation (Sarmasel-Turda, 50 Km x 10 inches). Join over 10,000 individuals who have taken our Cost-free introductory course to find out about the sector and the opportunities that await you in oil and gas.
Lastly, transporting oil and gas by rail is generally more costly for producers than transporting it by pipeline. On average, it charges between US$10-$15 per barrel to transport oil and gas by rail compared to $5 a barrel for pipeline. 20 21 In 2012,16 million barrels of oil were exported to USA by rail. By 2014, that quantity improved to 59 million barrels. 22 Despite the fact that quantities decreased to 48 million in 2017, the competitive positive aspects presented by rail, especially its access to remote regions as properly as lack of regulatory and social challenges compared with developing new pipelines, will most likely make it a viable transportation technique for years to come. 22 Each types of transportation play a role in moving oil efficiently, but each and every has its distinctive trade-offs in terms of the rewards it delivers.
petroleum industry transport safety forumOil was exploited in the Roman province of Dacia , now in Romania, where it was known as beginning of the Romanian petroleum industry dates back to 1769 with the documentation of rudimentary crude oil extraction in Moldavia by Dimitrie Cantemir, a former Moldavia King, who published the account in "Descriptio Moldavie."The initial documents attesting the existence of fuel oil on today's territory of Romania do not tell us, however, how oil was extracted or what it was utilized for. Our analysis at the Institute of Transportation Research at the University of California, Davis shows that encouraging electric vehicle purchases is just 1 way policymakers can aid phase out oil consumption – one particular essential to minimizing the greenhouse gas emissions that stoke climate adjust and well being-threatening pollution.
I in no way knew Vacation Inn had such a wealthy history or created their personal bacon or pioneered so several factors in the hotel sector. Nonetheless, most importantly, they made their personal bacon!!! 😀 The vimtage pics of the inside decor appear remarkable and not kitschy at all for its time. In a way the design and style seems so sophisticated and timeless, even on down to the restaurants.
The GRC Annual Meeting is the industry's biggest annual gathering of major geothermal energy scientists, producers, renewable energy industry stakeholders, regulators, utilities, and crucial linked business leaders. The 4-day event will offer technical, policy, and market place conference sessions, educational seminars, tours of nearby geothermal and renewable energy projects, and many networking possibilities.
Select & Start off Your Own Industry (4th Revised Edition)petroleum industry transport safety forum
petroleum industry transport safety forumOil was exploited in the Roman province of Dacia , now in Romania, where it was known as beginning of the Romanian petroleum industry dates back to 1769 with the documentation of rudimentary crude oil extraction in Moldavia by Dimitrie Cantemir, a former Moldavia King, who published the account in "Descriptio Moldavie."The first documents attesting the existence of fuel oil on today's territory of Romania do not tell us, nevertheless, how oil was extracted or what it was employed for. Maritime. This mode is probably to be fairly unaffected as it is the most power effective, but fuel is an important component of a ship's operating fees. The response of maritime shippers over larger energy rates tends to be lowering speed ( slow steaming ), which may possibly have impacts on port call scheduling. On the extended run, greater power prices could nonetheless indirectly effect maritime transportation by lowering demand for extended distance cargo movements and incite port calls at ports possessing the most direct and efficient hinterland connections. In addition, this context may favor the development of quick coastal and fluvial services where attainable.
Second, in portion simply because of the very first purpose and in component because of the technologies of the engine, incomplete combustion emits other residuals. Combustion in an engine occurs at an average rate of 25 times per second, leaving limited time for a complete combustion process. Besides carbon dioxide and water, a standard internal combustion engine will produce carbon monoxide (CO), hydrocarbons (benzene, formaldehyde, butadiene and acetaldehyde), volatile organic compounds (VOC), sulfur dioxide (SO2), particulates, and nitrogen oxides (NOx). These combustion products are the main pollutants emitted in the environment by transportation.
Air transportation plays an integral portion in the globalization of transportation networks. The aviation business accounts for eight% of the power consumed by transportation. Air transport has high energy consumption levels, linked to high speeds. Fuel is the second most important price for the air transport business accounting for 13-20% of total expenditures. Technological innovations, such as more efficient engines and better aerodynamics, have led to a continuous improvement of the energy efficiency of every new generation of aircrafts.
forum transporttransport
By Evelyn Stewart
Wise Transportation Marketplace Worldwide Market Analysis, Size, Share, Development, Trends And Forecast
Seeks To Advance Exploration Of Technologies Applications Across Blockchain In Transportation Industry
Scheduled Air Transportation Canada Industry Report


text:
James Oswald Fairfax  (27 March 1933 – 11 January 2017) was an Australian company director, philanthropist, and a member of the Fairfax family, an Australian family prominent in the newspaper publisher industry.

Biography
Fairfax was born in Sydney, the eldest son of Sir Warwick Oswald Fairfax and Marcie Elizabeth (Betty) Wilson. He is the grandson of Sir James Oswald Fairfax (1863–1928) and David Wilson  (1879–1965).

Educated at Fairfield, Cranbrook School, Geelong Grammar School and Balliol College, Oxford, he became a director of John Fairfax & Sons Ltd in 1957 and took over from his father  in 1977. He resigned in 1987 and sold his shares to his half brother Warwick Fairfax, during 'young Warwick's' ultimately disastrous takeover bid.

Fairfax published a memoir in 1991. He died single having never married on 11 January 2017 at the age of 83.

Philanthropy and honours
A prominent art collector, initially of Australian art, and from the 1960s increasingly of European old masters. He was a generous supporter of the Art Gallery of New South Wales and the National Gallery of Australia. A catalogue of his collection of art was published to accompany an exhibition held at the Art Gallery of New South Wales, between April and July 2003. In 2015, Fairfax's net worth was estimated in the BRW Rich 200 to be 302 million, comprising a mix of property, diversified investments and an extensive collection of art and antiques.

The James Fairfax Yard building in the Holywell Manor complex at Balliol College, Oxford is named in his honour for his donations to the college.

He was appointed an Officer (AO) of the Order of Australia in 1993 in recognition of service to the arts and to the community; and a Companion of the Order (AC) in 2010 for eminent service to the community through support and philanthropy for the visual arts, conservation organisations and building programs for medical research and educational facilities.

In 2016 Fairfax gifted his Retford Park, Bowral property to the National Trust of Australia.

References

Further reading

1933 births
2017 deaths
Australian philanthropists
Australian gay men
James
Businesspeople from Sydney
People educated at Geelong Grammar School
Companions of the Order of Australia
People educated at Cranbrook School, Sydney
Alumni of Balliol College, Oxford
20th-century philanthropists


text:
Hello, I'm Annie Dieu-Le-Veut, a shaman and hermeticist writer and teacher of the ancient Mysteries, and I live in the Vale of Avalon in Somerset, England.
Find out more about my books here, and follow links to buy them. Read on to discover what sort of seeker of the eternal Mysteries you are and which book will be best for you.
The Secret Life of Dragons
By: Annie Dieu-Le-Veut December 8, 2021 January 6, 2022
High Magic, My Broadcasts, Mystery Teachings, MythologiesAnnie Dieu-Le-Veut, dragons, Hydra, Ladon, leviathans, Mabinogion, Mystery Teachings, Scythians, sea serpents, Smaug, the Edda
Over the past few years, I've noticed there's been quite a resurgence of interest in dragons. Friends of mine, who engage shamanically with the energy lines criss-crossing the globe – often and wrongly called ley lines – tell me that it's because the dragons that guard them are waking up. They may be right. But…
Podcast: War and Peace
By: Annie Dieu-Le-Veut December 5, 2021 December 13, 2021
My Broadcasts6 Comments on Podcast: War and Peace
I'd be very grateful if you could leave a comment and let me know whether you prefer my voice, on this short new podcast, to the American bot lady on the others. …or otherwise. I promise I won't be offended if you prefer her – her name is Rene – as you'll be saving me…
Podcast: The Dragon Whisperer's Son, Chapter One
High Magic, My Broadcasts, Mystery TeachingsArianrhod, Celtic myths, dragons, Gwyddion, Mystery Teachings, serpents, The Glastonbury Chronicles
Here is the Chapter One of the first book of The Glastonbury Chronicles, The Dragon Whisperer's Son. If you prefer you can listen to an audio recording by JUST CLICKING HERE.
The Revelation of the Divine Feminine
By: Annie Dieu-Le-Veut November 22, 2021 November 26, 2021
Mystery Teachings, MythologiesAnnie Dieu-Le-Veut, Aphrodite, Ares, Babylon, Divine Feminine, Divine Masculine, Eve, Ishtar, Isis, Mars, sacred architecture, sacred prostitutes, sacred sex, sacred whores, The Sacred Sex Rites of Ishtar, Venus, whore of babylon
I had a lucid dream this morning. I was wandering around one of the Other Worlds and then I came into a room which was full of women arguing about the Divine Feminine. One was saying it was Venus, while others were insisting that it was Aphrodite, Ishtar, Eve, Isis or Astarte. Finally, one woman…
The Art of Dragon Whispering
Mystery Teachings, Mythologiesalchemical magic, Annie Dieu-Le-Veut, Dragon Clans, dragon magic, Dragon Whispering, dragons in myths, Druids
I am currently writing The Dragon Whisperer's Handbook, a compendium of ancient magical practices that I'm hoping will help all those walking the long and winding road towards self-realisation, and I think it will also be a particularly useful guide for baby dragons. Of course, if you are a baby dragon, you probably won't know…
The Secret of The Secret
By: Annie Dieu-Le-Veut November 15, 2021 December 2, 2021
High Magic, Mystery Teachings#gratitude, Annie Dieu Le Veut, lawofattraction, Mystery Teachings, Rhonda Byrne, shamanism, The Secret
Yesterday, I told the Universe to send me a coat. I didn't include a long wordy spec with my request. I just sent out a picture of it. As they say, a picture speaks a thousand words and that might be why I find, in all these types of shamanic communications, that metaphors in the…
The Star Mysteries of Christmas
This blog article is also available as a podcast HERE. The story goes that when the great 18th century composer George Frideric Handel lay dying, a friend asked him if he felt satisfied with his life, and whether he could die happily knowing that he had completed his legacy on Earth. Handel, apparently, smiled and…
The mythology of Squid Game
By: Annie Dieu-Le-Veut November 8, 2021 November 8, 2021
Mystery TeachingsAnnie Dieu-Le-Veut, Hero of Squid Game, Mysteries of Squid Game, Mystery Teachings, mythological hero, Squid Game, Squid Game metaphors, Stories in the Stars
Squid Game has become a massive worldwide hit on Netflix, but some of its success must surely be due to what most people have gone through during the last two years? Many more of us than ever, it seems to me, are now wondering whether we are just the poor victims of some fateful game…
Fire in the Head – the shaman's halo
Mystery Teachings, Sacred DrumAnnie Dieu-Le-Veut, fire in the head, Mircea Eliade, Mystery Teachings, mystical heat, shamanism, shamans
There's a lot of nonsense talked about whether someone in the West can call themselves a shaman, because 'shaman' is a Siberian word and we're not Siberians. The truth is, we are shamans. We do the same job as the Siberian shamans of old. We experience the same mystical heat in our heads as all…
Samhain and the star nursery
Mystery Teachings, MythologiesKrttika Sisters, Makahiki, Nebra Sky Disc, Pleiades, Seven Sisters, star nursery, The Glastonbury Chronicles, The Sisterhood of the Deer
If you look to the east tonight just after sunset, which is the only time the Pleiades or Seven Sisters star cluster is visible to the naked human eye, you may be lucky enough to see them rising into the night sky. Each of its seven hot blue stars hovers in a sparkling, nebulous mist…
A Song for All Hallows Eve
By: Annie Dieu-Le-Veut October 31, 2021
Mystery TeachingsAll Hallow's Eve, Avalon, Glastonbury, Gwyn ap Nudd, poetry, Samhain
O Holy Night! The stars are brightly shining Over the red roofs of Glastonbury town. Asleep are the folk, lying there quietly dreaming Of the coming of the Winter King's holly crown. Dark is the night; its nadir as black as coal. Only the fire red eyes of the dragons glow, But something is stirring,…


text:
Canada has long had business-friendly dealings with monarchs and fat cats in Jordan
He's spent millions of dollars in real estate on Fifth Avenue and the Champs-Elysées in Paris and spread an empire of luxury shops and palaces across the Middle East and beyond. And that hasn't…
He's spent millions of dollars in real estate on Fifth Avenue and the Champs-Elysées in Paris and spread an empire of luxury shops and palaces across the Middle East and beyond.
And that hasn't come cheap, with Canadians shelling out at least $110 million in aid for Jordan this year, one of the largest sponsors of the kingdom's military as it struggles with a brutal civil war gripping the country for more than a decade.
Canadian voters may have been happy to support such projects for a kingdom that has been responsible for building the nation of 20 million people, while ignoring an alliance that saw it render the deadly 1980 "Black September" attacks on the U.S. Embassy in Beirut, Lebanon, as a "provocation" designed to weaken King Hussein.
King Hussein enjoyed a father-of-the-nation photo op in 1990 when George H.W. Bush landed at Jordan's Queen Alia International Airport in Amman with the help of American forces.
And King Hussein, who always had a flair for opulence and absurd salary, has been called the "money-purse monarch" and even the "pay-to-play monarch" for his hosting of U.S. capitalists and others who never visited the country but used its king and country as a playground.
In 1993, however, the monarch played it cheap while pulling the "Israel card" and causing a diplomatic flutter. As then-Foreign Minister Jean Chrétien was scrambling for Israel's diplomatic and military cooperation after the PLO split with the Palestine Liberation Organization, the king declared Israel "harboring terrorist cells" from his palace.
Israel denied the accusations, then hailed the end of the Canada-Egyptian alliance and said such a royal insult "reveals the superficiality and imperialistic essence of the Hashemite monarchy, without any apparent aims or objectives."
Yet Hussein kept bejeweling his palaces, opening his Alexander the Great palace to great groups of tourists and U.S. businessmen and deploying his skills as a strongman ruler — much like his onetime great friend Saddam Hussein, with whom he consolidated the Jordanian monarchy during the Gulf War.
The fact that Abdullah's money-laundering has been dubbed a "macro-swindle" and that he maintains massive holdings offshore in various countries suggests not only that he may be a real-estate pal of King Hussein, but it's now his turn to play the blackmail card.
Categories entertainment Tags boxing, celebrity, nobel prizes, tennis
Awful Dream Scenario: Belgium to play Canada at MLS Cup
Evergrande: Chinese property developer defaults on bond


text:
from .base import MachineProgram

class X86Program(MachineProgram):
    """ Machine code for most common desktops and laptops.
    """

    def _check_items(self, items):
        return items

    def _copy(self):
        raise NotImplementedError()

    def _get_report(self, html):
        obj = self._items[0]
        lines = []
        lines.append(repr(obj))
        for section in obj.sections:
            lines.append(repr(section))
        for symbol in obj.symbols:
            lines.append(repr(symbol))
        for reloc in obj.relocations:
            lines.append(repr(reloc))
        return '\n'.join(lines)

    def as_object(self):
        """ Export as binary code object (bytes)
        """
        obj = self._items[0]
        return bytes(obj.get_section('code').data)

    def as_elf(self, filename):
        """ Export as elf file.
        """
        raise NotImplementedError()

    def as_exe(self, filename):
        """ Export as a system executable file.
        """
        raise NotImplementedError()

redpajama_set_name: RedPajamaGithub


text:
[eBook] The Forty Rules of Love - A Novel of Rumi by Elif Shafak
In this lyrical, exuberant follow-up to her novel, The Bastard of Istanbul, acclaimed Turkish author Elif Shafak unfolds two tantalizing parallel narratives—one contemporary and the other set in the thirteenth century, when Rumi encountered his spiritual mentor, the whirling dervish known as Shams of Tabriz—that together incarnate the poet's timeless message of love.
Ella Rubenstein is forty years old and unhappily married when she takes a job as a reader for a literary agent. Her first assignment is to read and report on Sweet Blasphemy, a novel written by a man named Aziz Zahara. Ella is mesmerized by his tale of Shams's search for Rumi and the dervish's role in transforming the successful but unhappy cleric into a committed mystic, passionate poet, and advocate of love. She is also taken with Shams's lessons, or rules, that offer insight into an ancient philosophy based on the unity of all people and religions, and the presence of love in each and every one of us. As she reads on, she realizes that Rumi's story mirrors her own and that Zahara—like Shams—has come to set her free.
[eBook] Palomar: The Heartbreak Soup Stories, A Love and Rockets Book by Gilbert Hernandez
[eBook] Lila by Marilynne Robinson
[eBook] Gilead by Marilynne Robinson
[eBook] The Stranger by Albert Camus


text:
Q: Twilio - forward call after 2 rings Is it possible using Twilio to forward an incoming call to Phone Number A (Assume 416-555-1234), and if Phone Number A is busy or doesn't answer after 2 or 3 rings, forwards to Phone Number B?
The XML looks like this right now:
<xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>
        <Number>416-555-1234</Number>
    </Dial>
</Response>

A: Here's one of the places the phone network gets a little odd. The ringing you hear is just a recording.. with no synchronization or relationship with anything else. Also, it starts as soon as the network starts connecting your call, not once the physical device on the other end starts ringing. This is more apparently calling internationally where you (the caller) might have heard 10 rings but the receiver has only rung once or twice.
Anyway, the strategy for doing this isn't difficult at all. What you're looking for is the timeout parameter on the Dial verb:
http://www.twilio.com/docs/api/twiml/dial#attributes-timeout
When the timer expires, it goes on to the TwiML you specify. The default is 30 seconds but I've found 15-20 is a pretty good range for a more responsive forward.
(Disclosure: Twilio employee here.)


Drunk driving is considered a serious crime by most law enforcement agencies. Punishment for drunk driving reflects the serious approach taken towards it by drunk driving prosecutors and drunk driving judge. Over the years, the lobby groups, such as MADD(mothers against drunk driving), influence tougher laws, lower legal alcohol limit and generally increased drunk driving penalties in the state of California and nationwide. As a result, a simply drunk driving, a victimless crime based on dubious science can be punished with extreme consequence not only in the criminal justice system but also in the collateral effect it can have on the immigration status, on professional license, and on California drivers license. For example, a recipient of a newly passed DACA or DAPA immigration benefit can be denied status if he or she was convicted of drunk driving. A nurse will be questioned by the nursing board if she was convicted of drunk driving. A commercial driver will lose his driver's license for his entire life if he has two drunk driving convictions. As you can see, this relatively minor crime can have life altering consequences for many individuals.
The primary factor that will determine punishment for drunk driving in California is the number of prior DUI cases or an injury collision.
A DUI driver can face up to 6 month in the county jail upon his drunk driving 1st offense conviction. Upon a second DUI and third DUI conviction, the maxim punishment will be increased to 1 year. An arrest for a 4th offense DUI within ten years can result in filing of drunk driving felony charges which have a maximum prison sentence of 3 years. A felony drunk driving is a lot more serious then drunk driving misdemeanor and carry not only higher jail sentence but other felony consequences, such as lifetime restriction from owning firearms.
In addition to jail time, a punishment for drunk driving in California includes mandatory drunk driving programs, various drunk driving prevention programs such as MADD and HAM, and very high drunk driving fines. The drunk driving classes that a person would face after a DUI can range from 3 month alcohol education program to 30 month drunk driving class. A person who has multiple DUI on his record can face 18 month program. Factors in aggravation, such as high blood alcohol level will require longer punishment for drunk driving in California. To avoid drunk driving jail sentence a DUI have to be either a first offense or dismissed. Los Angeles drunk driving lawyer can provide quality defense at affordable price.
If you are looking for drunk driving help you can call Los Angeles DUI attorney for a free consultation. We will help you Los Angeles DUI cases and give you drunk driving tips on how to protect yourself during encounters with the police. Drunk driving attorney Los Angeles can help you defend any DUI, even with a high blood alcohol level or involving many priors or drunk driving wrecks. Call our office (818) 921 7744 to talk about your case and how Los Angeles drunk driving lawyer can help you.


A lot of our clients often inquire about the many kinds of plumbing pipes widely available to them when seeking a repipe. You will find differences amongst the two top choices with pros and cons of each type. Nearly all new water pipes installed today to replace old, rusty galvanized pipes are either PEX pipes or Copper Pipes. A number of house owners are not aware what Copper or PEX piping is made up of, exactly what each looks like, the expense of each, the benefits of each variety and the shortcomings. Until someone is faced with a situation where you have to repipe your bathrooms or complete plumbing system in the residence, it is tricky to be expected to be aware of what a repipe is and what it involves. It is important to learn enough information about Copper and PEX pipe to take full advantage of your available options from Repipe Specialists. Not all regions offer both repipe solutions.
Not only is it versatile and flexible, PEX pipes are likewise extremely resilient, there is less probability of future leaks, they are quieter, invulnerable to significant high and low temperature conditions, economical, supply rapid flowing water, can aid in reducing your water bills, are eco-friendly, and last a lifetime! Repiping with PEX is less expensive than plumbing with copper because the material is much less costly and requires a whole lot less work to implement a new water system using PEX pipes.
Others who live nearby in Monrovia, CA already have experienced a slab leak.
You will discover obvious differences between PEX pipes and Copper Pipes. Copper Plumbing pipe is stable (lasting over a hundred years), weather resistant (may be used outside the house as well as the interior), is oxidation resistant and does not burn in the event of a house fire. Copper pipes will be more expensive than PEX pipes essentially because the copper material itself is higher in price. Adding a totally new Copper Plumbing System can also be higher priced as it is more demanding and demands experience and expertise to ensure a dependable long lasting outcome. Plumbing with Copper Pipes is higher priced up front, however, with a full manufacturer guarantee, your modern pipes will last a life-time.
PEX Plumbing Pipes or Copper Plumbing Pipes? What do typical people in Monrovia, CA opt for?
– If you are living in an area where Copper theft is a risk, PEX should in all likelihood be your solution.
What makes Repipe Specialists the most notable repiping business in Monrovia?
– Total Specialists Completely licensed, insured and supplied for your repipe needs. You could even decide to add more options like new faucets and a tankless water heater.
– Professional: With well over 20 years of experience, Repipe Specialists has a high ranking among the strongest in customer satisfaction.
– Up-Front Rates: Our industry experts provide full pricing before the job begins. There aren't any unknown fees or surprise charges afterwards.
– Cleanliness: Our specialists take care of your household, put on shoe covers, place down work space cover and wholly clean any dust.
– Guaranteed for life: We believe passionately in the components used in our repipe products and services. We back this up with our special life-time warranty.
A repipe will offer you many years of the highest level of performance with your home water system. Get in contact with Repipe Specialists to set up a no charge in-home estimation. Repiping can be performed in as soon as one day and can certainly cost less than half of what your local plumber would cost.


text:
A Visit to the Original In-N-Out Replica in Baldwin Park
August 21, 2015 by Brian Champlin
For many people eating an In-N-Out hamburger is a religious experience. An act of worship, if you will.
The zealotry associated with hardcore fans of In-N-Out is legendary. It's also the key reason the chain doesn't even have to market themselves anymore.
Word of mouth is the best form of advertising, and the In-N-Out faithful are never shy about letting you know just how awesome their hamburger of choice really is.
While I wouldn't say I'm quite on that level, I have been eating In-N-Out hamburgers for some two decades and consider myself to be an avid fan, both of the food and the brand.
So when I found out that they had recently constructed a replica of the original In-N-Out drive-thru stand, I knew I needed to find a way to investigate for myself.
This week I finally set aside some time in my schedule to make a pilgrimage to Baldwin Park to check it out.
Below is what I learned.
So this is what #innout used to look like… And yes, those burgers are priced for a quarter each!!! #mydayinla #losangeles #lafoodie #baldwinpark #nomnomnom #welikela
A photo posted by We Like L.A. (@welikela) on Aug 20, 2015 at 11:23am PDT
The History of the First In-N-Out Locaion
On October 22, 1948 at 4:15pm the very first In-N-Out location opened its doors to the public at the intersection of Francisquito and Garvey in Baldwin Park, CA.
Just six years later the wheels of progress (what would become the 10 freeway) forced a relocation of the original stand to down the street, and that newer spot stood for about 50 years until it was decided to shut it down and relocate again, this time just across the freeway overpass to a lot adjacent to the In-N-Out company store and training center.
That shuttered In-N-Out stood in abandon for almost seven years until it was completely demolished in 2011.
In 2014 the site of the rubble was reborn as the home of a replica of the original (1948) In-N-Out, which is where I found myself visiting earlier this week.
In-N-Out history plaque. Credit: Brian Champlin
The In-N-Out Replica
So what an you expect with a visit to the replica?
Well, they don't serve actual burgers there, but I still think it's pretty neat.
The first word that comes to mind is detail, from the familiar, classic, mid-century design aesthetic to the pricing on the signage, the cigarette machine (yup, they used to sell cigarettes at fast food chains), and vintage interior features such as the original potato dicer and cash drawer from the first location. There's even reproductions of the fryer, refrigerator, and outdoor wash station to complete the vintage effect.
Let's have a look at some of those…
The In N Out replica at a glance. Credit: Brian Champlin
Those prices tho… Credit: Brian Champlin
Cigarette vending machine. Credit: Brian Champlin
View from the rear. Credit: Brian Champlin
Pretty tight quarters inside. Credit: Brian Champlin
The vintage potato dicer they dug up from the In-N-Out storage facility was one of my favorite features. Credit: Brian Champlin
To avoid any water getting into the fryer, the potato wash station is outside the drive-thru shack. Credit: Brian Champlin
I think what I really enjoyed about the visit was the human element. As in, there is actually someone minding the store!
A extremely friendly and knowledgable In-N-Out employee named Karla (she deserves a raise imho) took careful time to discuss the history of the company, showed me around the modestly sized interior of the stand, and even indulged me as I went line-by-line through my secret menu list to make sure I wasn't missing anything.
[NOTE: Just to re-confirm here, monkey style is not a legit secret menu item. You can put fries in your burger on your own if you want, but they're not going to do that for you]
Karla also let me know that there is talk they may be expanding the replica location to include a bathroom so they could host more formal events, such as classic car meet-ups. If so, I think that would be an absolutely worthy usage of the space.
Visitors should take into consideration that the location is only open Thursday through Sunday, 11:00am – 2:00pm. If you stop by at any other time you'll be greeted with a locked gate that restricts your viewing to just observing from beyond a metal fence.
Ample parking is available on site, and an attendant isn hand during hours of operation.
Saturday and Sunday are going to busier, and summer time is always going to be more crowded than when school is in session.
The Original In-N-Out Replica is located at 13766 Francisquito Ave, Baldwin Park, CA 91706.
Oh, and if you're feeling in the mood for a double-double after your visit (likely) then just hop over the freeway to the nearby, fully-operational In-N-Out at 13850 Francisquito Ave., Baldwin Park, CA 91706.
burgersin n out


The Invasive Species Council of BC in partnership with the BC Ministry of Environment (MOE) will be hosting five free workshops for members of the boating industry this April. Regulated boat inspections will take place province-wide this coming season – be prepared by learning about the up-to-date guidelines and how they impact your industry, how to be an industry ambassador and how to work with MOE and the boat inspections.
Anyone involved with the boating industry is welcome, including marina owners and staff, commercial boat haulers, marine repair shops, operators and boat dealers. Content will include current legislation and industry guidelines, partnership opportunities, free resources, decontamination and quarantine protocols, key requirements and how to work with MOE. All leaders of the boating industry are encouraged to join and help continue to prevent the introduction and spread of AIS through recreational boating.
If you have any questions about the free Boating Industry Workshops, co-hosted by the Invasive Species Council of BC and the Ministry of the Environment, please contact Stephanie Woods, at events@bcinvasives.ca or (250) 580-8557.


holy CRAP the FASS system is NOT light......weight on UPS box was 35 lbs!!!
Now your gunna haveta add some power to make up for that additional 35 lbs. HAHAHAHAHAHAHAHA!
well i plan on a comp box before the end of summer.....wheres my snubber valve at nate?
To paraphrase Paul Harvey, where's the rest/end of the story.
An Inspiring Collection of Custom Gauges for you!
Air Dog 100 or 150?????


text:
Artículo principal: ISO 3166-2

ISO 3166-2:SS es la entrada para Sudán del Sur en ISO 3166-2, parte de los códigos de normalización ISO 3166 publicados por la Organización Internacional de Normalización (ISO), que define los códigos para los nombres de las principales subdivisiones (p.ej., provincias o estados) de todos los países codificados en ISO 3166-1.

En la actualidad, para Sudán del Sur, los códigos ISO 3166-2 se definen para 10 estados, 2 áreas administrativas y 1 área con estatus administrativo especial.

Cada código consta de dos partes, separadas por un guion. La primera parte es SS, el código ISO 3166-1 alfa-2 para Sudán del Sur. La segunda parte tiene dos letras.

Códigos actuales
Los nombres de las subdivisiones se ordenan según el estándar ISO 3166-2 publicado por la Agencia de Mantenimiento ISO 3166 (ISO 3166/MA). Las áreas administrativas de Pibor y Ruweng, así como la región actualmente disputada de Abyei, en la actualidad carecen del correspondiente código, y por esto no figuran en la lista.

Pulsa sobre el botón en la cabecera para ordenar cada columna.

Cambios
Los siguientes cambios de entradas han sido anunciados en los boletines de noticias emitidos por el ISO 3166/MA desde la primera publicación del ISO 3166-2 en 1998, cesando esta actividad informativa en 2013.

Los siguientes cambios a la entrada figuran en la lista del catálogo en línea de la ISO:

Véase también

 Subdivisiones de Sudán del Sur
 .ss (dominio correspondiente de nivel superior)

Referencias

Enlaces externos

 Plataforma en línea de la ISO: SS

Sudán del Sur
ISO 3166
Estados de Sudán del Sur


Grinding circuit for Mount Milligan mine. Home ; Offerings ; ... Extreme environmental conditions ... SAG mill Ball mills.
safety and environmental cement grinding ball mill in saudi arabia. LM Vertical Grinding Mill machine Supplier,Grinding LM Vertical Grinding Mills Introduction.