text:
#include <stdio.h>
#include "pcre.h"

#define _VIA_SIGNATURE_C

#include "types.h"
#include "config.h"
#include "debug.h"
#include "alloc-inl.h"
#include "database.h"
#include "signatures.h"

struct signature** sig_list;
u32 slist_max_cnt = 0, slist_cnt = 0;

void dump_sig(struct signature *sig);

/* Helper function to lookup a signature keyword. This makes it easier
  switch() signature keywords for, for example, storing their values in
  a struct */

static s32 lookup(u8* key) {

  u32 i;
  for (i=0; lookuptable[i].name; i++) {
    if (!strcmp((char*)key, lookuptable[i].name))
      return lookuptable[i].id;
  }
  return -1;
}

/* Helper function for parse_sig which takes a string where some
  characters might be escaped. It returns a copy with the \'s
  removed so \"aa\" becomes "aa" */

static u8* unescape_str(u8* str) {

  u32 k = 0, i = 0;
  u32 len = strlen((char*)str) + 1;
  u8* ret = ck_alloc(len);

  for (i=0; i<len; i++) {
    if(str[i] == '\\')
      continue;

    ret[k++] = str[i];
  }

  return ret;
}

/* Checks the signature and returns 1 if there is an error. This function is
 * expected to give warnings that help to resolve the signature error */

static u8 check_signature(struct signature *sig) {

  u8 ret = 0;
  if (sig->severity < 0 || sig->severity > 4) {
    WARN("Signature %d has an invalid severity: %d\n", sig->id, sig->severity);
    ret = 1;
  }

  if (!sig->content_cnt && !sig->mime) {
    WARN("Signature %d has no \"content\" nor \"mime\" string\n", sig->id);
    ret = 1;
  }

  if (!sig->memo) {
    WARN("Signature %d has no memo string\n", sig->id);
    ret = 1;
  }

  return ret;
}

static u8 compile_content(struct content_struct *content) {
  const char* pcre_err;
  int pcre_err_offset;

  u32 options = PCRE_MULTILINE;

  if (content->type != TYPE_REGEX)
    return 1;

  if (content->nocase) options |= PCRE_CASELESS;

  content->pcre_sig = pcre_compile((char*)content->match_str, options,
                               &pcre_err, &pcre_err_offset, 0);

  if (!content->pcre_sig)
    return 1;

  /* This is extra */
  content->pcre_extra_sig = pcre_study(content->pcre_sig, 0, &pcre_err);

  return 0;

}

/* Look up a signature. */
static struct signature* get_signature(u32 id) {
  u32 i;

  for (i=0; i<slist_cnt; i++) {
    if (sig_list[i]->id == id)
      return sig_list[i];
  }

  return NULL;
}

/* Parses the signature string that is given as the first parameter and returns
   a signature struct */

struct signature* parse_sig(u8* tline) {

  u8 *val, *name, *line;
  u8 in_quot = 0;
  u8 no = 0;
  struct content_struct *lcontent = NULL;

  line = tline = ck_strdup(tline);

  struct signature* sig = ck_alloc(sizeof(struct signature));
  while (line) {

    /* Skip spaces */
    name = line;
    no = 0;

    while (name && isspace(*name))
      name++;

    /* Split on the value and, for now, return NULL when there is no
       value. We check for keyworks without value, like nocase.  */

    val = name;
    while (*val && val++) {
      if (*val == ':') {
        *val = 0;
        val++;
        break;
      }

      if (*val == ';') break;
    }

    if(!*val) {
      ck_free(sig);
      ck_free(tline);
      return 0;
    }

    /* Check if ! is present and set 'not' */
    if (*val == '!') {
     no = 1;
     val++;
    }

    /* Move to value and check if quoted */
    if (*val && (*val == '\'' || *val == '"')) {
      in_quot = *val;
      val++;
    }

    /* Find the end of the value string */
    line = val;
    while (*line && (in_quot || *line != ';') && line++) {
      if(*line == '\\') {
        line++;
        continue;
      }

      /* End of quotation? */
      if (in_quot && *line == in_quot) {
        in_quot = 0;
        *line = 0;
        line++;
        continue;
      }
    }
   *line = 0;

    switch (lookup(name)) {
      case SIG_ID:
        sig->id = atoi((char*)val);
        break;
      case SIG_CHK:
        sig->check = atoi((char*)val);
        break;
      case SIG_CONTENT:

        /* If we already have a content struct, try to compile it (when
           regex) and create a new content struct */

        if (lcontent) {

          /* Compile and bail out on failure */
          if (lcontent->type == TYPE_REGEX &&
              compile_content(lcontent))
              FATAL("Unable to compile regex in: %s", tline);

        }

        if (sig->content_cnt > MAX_CONTENT)
          FATAL("Too many content's in line: %s", tline);

        sig->content[sig->content_cnt] = ck_alloc(sizeof(struct content_struct));
        lcontent = sig->content[sig->content_cnt];
        lcontent->match_str = unescape_str(val);
        lcontent->match_str_len = strlen((char*)lcontent->match_str);
        lcontent->no = no;
        sig->content_cnt++;
        break;
      case SIG_MEMO:
        sig->memo = unescape_str(val);
        break;
      case SIG_PCRE_MATCH:
        if (!lcontent) {
          WARN("Found 'regex_match' before 'content', skipping..");
          break;
        }

        lcontent->cap_match_str = unescape_str(val);
        break;
      case SIG_TYPE:
        if (!lcontent) {
          WARN("Found 'type' before 'content', skipping..");
          break;
        }
        /* 0 is plain to which we default so this only checks if the
           rule wants a regex */
        if (!strcmp((char*)val, "regex"))
          lcontent->type = (u8)TYPE_REGEX;
        break;
      case SIG_DIST:
        if (!lcontent) {
          WARN("Found 'distance' before 'content', skipping..");
          break;
        }
        lcontent->distance = atoi((char*)val);
        break;
      case SIG_OFFSET:
        if (!lcontent) {
          WARN("Found 'offset' before 'content', skipping..");
          break;
        }
        lcontent->offset = atoi((char*)val);
        break;
      case SIG_REPORT:
        /* TODO(heinenn): support "never" */
        if (!strcmp((char*)val, "once")) {
            sig->report = REPORT_ONCE;
        } else {
            sig->report = REPORT_ALWAYS;
        }
        break;
      case SIG_DEPEND:
        /* Chain to another signature */
        sig->depend = get_signature(atoi((char*)val));
        break;

      case SIG_SEV:
        sig->severity = atoi((char*)val);
        break;
      case SIG_PROB:
        sig->prob = atoi((char*)val);
        break;
      case SIG_DEPTH:
        if (!lcontent) {
          WARN("Found 'depth' before 'content', skipping..");
          break;
        }
          lcontent->depth = atoi((char*)val);
        break;
      case SIG_CASE:
        if (!lcontent) {
          WARN("Found 'case' before 'content', skipping..");
          break;
        }
        lcontent->nocase = 1;
        break;
      case SIG_PROTO:
        if (!strcmp((char*)val, "https")) {
          sig->proto = PROTO_HTTPS;
        } else if (!strcmp((char*)val, "http")) {
          sig->proto = PROTO_HTTP;
        } else {
          WARN("Unknown proto specified: %s (skipping)", val);
        }
        break;
      case SIG_MIME:
        sig->mime = unescape_str(val);
        break;
      case SIG_HEADER:
        if (sig->header) {
          FATAL("Found multiple 'header' keywords, skipping..");
          break;
        }
        sig->header = unescape_str(val);
        break;
      case SIG_CODE:
        sig->rcode = atoi((char*)val);
        break;

      default:
        FATAL("Unknown keyword: %s", name);
    }

    /* Proceed, or stop when we're at the end of the line. Since 'line'
       still points to ; , we'll increase it first */
    if(line) line++;

    /* Now if we're at EOF or EOL, we'll stop */
    if (!line || (*line == '\r' || *line == '\n'))
        break;
  }

  ck_free(tline);

  /* Compile the last content entry */
  if (lcontent) compile_content(lcontent);

  /* Done parsing! Now validate the signature before returning it */
  if (check_signature(sig)) {
    DEBUG("Skipping signature (didn't validate)\n");
    destroy_signature(sig);
    return NULL;
  }

  /* Dump the signature when debugging */

#ifdef LOG_STDERR
  dump_sig(sig);
#endif /* !LOG_STDERR */
  return sig;
}

/* Loads the signature list from file 'fname' and parses each line. Whenever a
 * line starts with #include , the file will be parsed as well to make signature
 * management really easy. */

void load_signatures(u8* fname) {
  FILE* in;
  u8 tmp[MAX_SIG_LEN + 1];
  u8 include[MAX_SIG_FNAME + 1];
  u32 in_cnt = 0;
  u8 fmt[20];

  struct signature *sig;

  in = fopen((char*)fname, "r");
  if (!in) {
    PFATAL("Unable to open signature list '%s'", fname);
    return;
  }

  /* Create a signature list */
  if (!sig_list)
    sig_list = ck_alloc(sizeof(struct signature*) * MAX_SIG_CNT);

  u32 sig_off = 0;
  s32 tmp_off = 0;
  while (fgets((char*)tmp + sig_off, MAX_SIG_LEN - sig_off, in)) {

    if (tmp[0] == '#' || tmp[0] == '\n' || tmp[0] == '\r')
      continue;

    /* We concat signature lines that end with a trailing \ */
    tmp_off = strlen((char*)tmp) - 1;
    while (tmp_off && isspace(tmp[tmp_off]))
      tmp_off--;

    if (tmp[tmp_off] == '\\') {
      sig_off = tmp_off;
      continue;
    }

    /* When the include directive is present, we'll follow it */
    if (!strncmp((char*)tmp, "include ", 8)) {

      /* Check the amount of files included already. This is mostly to protect
       * against include loops */

      if (in_cnt++ > MAX_SIG_INCS)
        FATAL("Too many signature includes (max: %d)\n", MAX_SIG_INCS);

      sprintf((char*)fmt, "%%%u[^\x01-\x1f]", MAX_SIG_FNAME);
      sscanf((char*)tmp + 8,(char*)fmt, (char*)include);

      DEBUG("- Including signature file: %s\n", include);
      load_signatures(include);
      continue;
    }

    sig = parse_sig(tmp);
    sig_off = 0;

    if(sig == NULL)
      continue;

    if (slist_cnt >= MAX_SIG_CNT)
      FATAL("* Signature list is too large (max = %d)\n", MAX_SIG_CNT);

    sig_list[slist_cnt++] = sig;
  }

  DEBUG("*- Signatures processed: %s (total sigs %d)\n", fname, slist_cnt);

  fclose(in);
}

/* Helper function to check if a certain signature matched. This is,
   for example, useful to chain signatures. */

static u8 matched_sig(struct pivot_desc *pv, u32 sid) {
  u32 i;

  if (!pv->issue_cnt) return 0;

  /* Will optimise this later by changing the way signature match
     information is stored per pivot */
  for (i=0; i<pv->issue_cnt; i++) {
    if (pv->issue[i].sid == sid)
      return 1;
  }

  return 0;
}

u8 match_signatures(struct http_request *req, struct http_response *res) {

  u8 pcre_ret, matches = 0;
  u8 *payload, *match = NULL;
  u32 ovector[PCRE_VECTOR];
  struct pivot_desc *tpv;
  u32 ccnt, pay_len, j = 0, i = 0;

  struct content_struct *content = NULL;

  for ( j = 0; j < slist_cnt; j++ ) {

    /* Check the signature is protocol specific (e.g. SSL-only) */
    if (sig_list[j]->proto && (sig_list[j]->proto != req->proto))
      continue;

    /* Check if the signature is only intended for one of the active tests. */
    if (sig_list[j]->check && (req->pivot->check_id > 0 &&
        req->pivot->check_id != sig_list[j]->check)) {
      continue;
    }

    /* Compare response code */
    if (sig_list[j]->rcode && sig_list[j]->rcode != res->code)
      continue;

    /* If dependent on another signature, first check if that signature
       matches. If it than we're done with this sig */
    if (sig_list[j]->depend) {
      tpv = req->pivot;

      /* If report == 1 then we need to look at the host pivot */
      if (sig_list[j]->depend->report == REPORT_ONCE)
        tpv = host_pivot(req->pivot);

      /* Do the check */
      if(!matched_sig(tpv, sig_list[j]->depend->id))
         continue;
    }

    /* Compare the mime types */
    if (sig_list[j]->mime && res->header_mime) {
      /* Skip if the mime doesn't match */
      if (strncmp((char*)res->header_mime, (char*)sig_list[j]->mime,
                  strlen((char*)sig_list[j]->mime))) continue;

      /* We've got a signature match with the mime is the same and no content
       * string exists. This is useful for reporting interesting mime types,
       * such as application/x-httpd-php-source */

      if (!sig_list[j]->content_cnt) {
        signature_problem(sig_list[j], req, res);
        continue;
      }
    }

    /* Nice, so here the matching will start! Unless...  there are not content
     * strings, or when the response is mainly binary data.  */
    if (res->doc_type == 1 || !sig_list[j]->content_cnt)
      continue;

    /* If this is a header signature, than this is our payload for
       matching.  Else, we'll take the response body */

    if (!sig_list[j]->header) {
      payload = res->payload;
      pay_len = res->pay_len;

    } else {

      /* Header is the payload */
      payload = GET_HDR(sig_list[j]->header, &res->hdr);

      /* A header might very well not be present which means we can
         continue with the next signature */
      if (!payload) continue;
      pay_len = strlen((char*)payload);

    }

    matches = 0;

    for (i=0; pay_len > 0 && i<sig_list[j]->content_cnt; i++) {

      content = sig_list[j]->content[i];

      /* If there is an offset, we will apply it to the current payload
         pointer */

      if (content->offset) {
        if (pay_len < content->offset) break;

        payload = payload + content->offset;
      }

      /* Use the specified maximum depth to search the string. If no depth
      is specified, we search the entire buffer. Note that this is relative
      to the beginning of the buffer _or_ the previous content match */

      if (content->depth)
        pay_len = content->depth;

      if (content->distance && pay_len > content->distance) {
        payload += content->distance;
        pay_len -= content->distance;
      }

      match = 0;
      if (content->type == TYPE_PLAIN) {
        if (content->nocase) {
          match = inl_findstrcase(payload, content->match_str, pay_len);
        } else {
          match = inl_findstr(payload, content->match_str, pay_len);
        }

        if (match && !content->no) {
          /* Move the match pointer to allow offset to be applied relative
             to the previous content-match */

          payload = match + content->match_str_len;
          pay_len -= content->match_str_len;
          matches++;
        } else if(!match && content->no) {
          matches++;
        } else break;

      } else if(content->type == TYPE_REGEX) {
        /* Lets do the pcre matching */
        pcre_ret = (pcre_exec(content->pcre_sig, content->pcre_extra_sig,
            (char*)payload, pay_len, 0, 0, (int*)ovector, PCRE_VECTOR) >= 0);

        if (!content->no && pcre_ret) {
            /* We care about the first match and update the match pointer
              to the first byte that follows the matching string */

            /* Check if a string was captured */
            pcre_fullinfo(content->pcre_sig, NULL, PCRE_INFO_CAPTURECOUNT, &ccnt);

            if (ccnt > 0 && content->cap_match_str) {

                /* In pcre we trust.. We only allow one string to be
                   captured so while we could loop over ccnt: we just grab
                   the first string. */

                u32 cap_size = ovector[3] - ovector[2];

                if (cap_size > MAX_PCRE_CSTR_SIZE)
                    cap_size = MAX_PCRE_CSTR_SIZE;

                u8 *pcre_cap_str = ck_alloc(cap_size + 1);

                if (pcre_copy_substring((char*)payload, (int*)ovector, 2, 1,
                                        (char*)pcre_cap_str, cap_size)) {
                    /* No match? break the loop */
                    if (inl_strcasestr(pcre_cap_str, content->cap_match_str)) {
                        ck_free(pcre_cap_str);
                        break;
                    }
                }
                ck_free(pcre_cap_str);

            }

            /* Move to the first byte after the match */
            payload = payload + ovector[1];
            pay_len -= (ovector[1] - ovector[0]);
            /* pay_len is checked in the next match */

            matches++;
        } else if(!pcre_ret && content->no) {
            matches++;
        } else break;
      }
    } /* for i loop */

    if (matches == sig_list[j]->content_cnt)
      signature_problem(sig_list[j], req, res);

  } /* for j loop */

  return 0;
}

/* Wrapper for reporting a signature problem */
void signature_problem(struct signature *sig,
                       struct http_request *req,
                       struct http_response *res) {

#ifdef _SIGNATURE_TEST
  DEBUG("signature_problem() called for %d (%s)\n", sig->id, sig->memo);
#else

  /* Register the problem, together with the sid */
  register_problem((sig->prob ? sig->prob : sig_serv[sig->severity]),
                    sig->id, req, res, (sig->memo ? sig->memo : (u8*)""),
                    sig->report ? host_pivot(req->pivot) : req->pivot, 0);

#endif
}

void destroy_signature(struct signature *sig) {
  u32 i;

  if (sig->memo) ck_free(sig->memo);
  if (sig->mime) ck_free(sig->mime);
  if (sig->header) ck_free(sig->header);

  for (i=0; i<sig->content_cnt; i++) {
    ck_free(sig->content[i]->match_str);

    if (sig->content[i]->pcre_sig)
      free(sig->content[i]->pcre_sig);
    if (sig->content[i]->pcre_extra_sig)
      free(sig->content[i]->pcre_extra_sig);

    ck_free(sig->content[i]);
  }

  ck_free(sig);

}
void destroy_signature_lists() {

  u32 i;
  for (i = 0; i < slist_cnt; i++)
    destroy_signature(sig_list[i]);

  ck_free(sig_list);
}

/* For debugging: dump a signature */
void dump_sig(struct signature *sig) {

  u32 i;

  DEBUG("\n=== New signature loaded ===\n");
  DEBUG("  id        = %d\n", sig->id);
  DEBUG("  severity  = %d\n", sig->severity);
  DEBUG("  content # = %d\n", sig->content_cnt);

  for (i=0; i<sig->content_cnt; i++) {
    DEBUG("  %d. match_str     = %s\n", i, sig->content[i]->match_str);
    DEBUG("  %d. type          = %s\n", i, sig->content[i]->type ? "REGEX" : "STRING");
    DEBUG("  %d. offset        = %d\n", i, sig->content[i]->offset);
    DEBUG("  %d. depth         = %d\n", i, sig->content[i]->depth);
    DEBUG("  %d. position      = %d\n", i, sig->content[i]->distance);
    DEBUG("  %d. nocase        = %d\n", i, sig->content[i]->nocase);
    DEBUG("  %d. no            = %d\n", i, sig->content[i]->no);

  }
  /* And now the optional fields */
  if (sig->memo)
    DEBUG("  memo     = %s\n", sig->memo);
  if (sig->mime)
    DEBUG("  mime     = %s\n", sig->mime);
  if (sig->rcode)
    DEBUG("  code     = %d\n", sig->rcode);

  DEBUG("  depend    = %d\n", sig->depend ? sig->depend->id : 0);
  DEBUG("  header    = %s\n", sig->header ? (char*)sig->header : (char*)"");

  switch (sig->proto) {
    case '0':
      DEBUG("  proto    = HTTP/HTTPS\n");
      break;
    case PROTO_HTTP:
      DEBUG("  proto    = HTTP\n");
      break;
    case PROTO_HTTPS:
      DEBUG("  proto    = HTTPS\n");
  }
}

redpajama_set_name: RedPajamaGithub


text:
Car involved in fatal crash in Catalonia (picture via Martorell Police)
Two killed as hit-and-run driver crashes into group of cyclists near Barcelona
Police later arrested motorist who was said to have veered onto wrong side of road before hitting riders
Tue, Aug 23, 2022 13:03
Two people have been killed and three taken to hospital, one with critical injuries, after a hit-and-run driver crashed into a group of cyclists near Barcelona.
Catalonia's regional police force, the Mossos d'Esquadra, subsequently arrested the driver, who is due to appear in court today or tomorrow, reports El Pais.
The fatal crash happened in Castellbisbal, a few kilometres northwest of Barcelona, on Sunday morning and claimed the lives of two male cyclists, aged 62 and 72, who were riding as part of a group of eight from the Club Ciclista de Rubí.
The driver, who was travelling in the opposite direction to the cyclists, was said to have veered onto the wrong side of the road, with one of the cyclists pronounced dead at the scene, while the other died upon arrival at hospital.
Police said that the driver has a previous road traffic conviction dating back to 2013, and had been charged with reckless homicide and causing injury, and at least four counts of leaving the scene of a crash.
Toxicology tests, including retrospective blood alcohol tests, were also carried out on the driver, whose car, an Opel Adam with dents and a smashed windscreen, was found by local police in Martorell, who alerted the Mossos d'Esquadra to the vehicle.
In a tweet, the Catalan cycling federation described it as a "day of mourning" for all cyclists in the autonomous region, and expressed its condolences to the families and club mates of the cyclists who were killed.

redpajama_set_name: RedPajamaCommonCrawl


text:
Why the best start in team history?
Home | News | Why the best start in team history?
Welcome to Wolves Insider, presented by Rivers Casino: the weekly report that gives you the latest Chicago Wolves news as the organization bids for its fifth league championship.
BEST START IN FRANCHISE HISTORY
We get it. The Wolves have been on the road for the last two weeks, which makes it hard to stay focused on the hottest team in hockey. So here's the chance to take two minutes and get caught up on all of the magnificent things the Chicago Wolves have accomplished in the first eight weeks of the American Hockey League season.
1) BEST START IN FRANCHISE HISTORY: Head coach Ryan Warsofsky's Wolves own a 17-4-1-1 record. That .783 points percentage is the best in team history through 23 games, which is saying something because the Wolves have four league championships and three other trips to the finals to show for their first 27 seasons.
2) NINE-GAME WINNING STREAK: For the first time since 2005-06, the Wolves are riding a nine-game winning streak. The team's longest streak, by the way, is 12 games set by the 1999-2000 team that won the Turner Cup.
3) PILING UP THE POINTS: Captain Andrew Poturalski has a head start on being the first AHL player in 24 years to win back-to-back scoring titles. He owns 34 points (12G, 22A) in 23 games. His linemates aren't far behind as C.J. Smith ranks second with 27 points (10G, 17A) and Stefan Noesen (10G, 14A) shares fourth.
4) STOPPING EVERYTHING: Veteran goaltender Alex Lyon ranks second with his 1.63 goals-against average. Rookie Eetu Makiniemi, who rotates games with Lyon, ranks second in wins (10) and eighth in GAA (2.23).
5) OUTSHOOTING EVERYONE: The Wolves have won the shots battle in each of their last 16 games — breaking the franchise record of 14 set by the 1998-99 team. Chicago leads the AHL with 34.83 shots per game and ranks second in fewest shots allowed (25.78).
HUGE HOME GAME SATURDAY
There are endless reasons to get to Allstate Arena for Saturday's 7 p.m. game against the Milwaukee Admirals. Spider-Man, Wonder Woman and Captain Marvel will be there to meet all the kids on Superhero Night.
The first 5,000 fans to enter the arena receive a Wolves 2022 Wall Calendar, courtesy of Rose Pest Solutions. All-Star members of the Skates Mates Kids Club get to go on the ice after the game to shoot on Skates. Last but not least, it's Adopt-A-Dog Night, presented by Premier Veterinary Group. Visit the South Lobby and give a wonderful dog a forever home!
For tickets to Saturday's game, click here.
SIGN UP FOR SATURDAY'S BLOOD DRIVE!
There's still time to save lives by joining the Chicago Wolves and Vitalant for Saturday's blood drive at Allstate Arena's Skyline Room.
The drive goes 9 a.m. to 7 p.m. and everyone who donates will receive two ticket vouchers, a limited-edition Wolves/Vitalant T-shirt, a Wolves hat and a chance to win an autographed jersey. To sign up, visit Vitalant.org/Wolves and use code ORD0RS20.
LAJOIE BACK IN THE FOLD
The Carolina Hurricanes announced Monday afternoon that defenseman Max Lajoie has been reassigned on loan to the Wolves. Lajoie spent two weeks with the Hurricanes and appeared in five games — posting a +2 plus/minus rating and blocking five shots.
Lajoie, who played in all 17 Wolves games before going to the NHL, will be ready to go with the Central Division-leading Wolves host the second-place Manitoba Moose at 11 a.m. Thursday.
ANDREW POTURALSKI
The AHL season is just eight weeks old, but the Wolves captain earned his second Player of the Week award Monday. Poturalski piled up 10 points (3G, 7A) during the three-game sweep at Texas and became the first Wolves player since Hall of Famer Darren Haydar in 2006-07 to score at least four points in back-to-back games.
STEFAN NOESEN
The Plano, Texas, native enjoyed a wonderful trip to his home state as he scored two goals Saturday night (including the overtime game-winner) and added two more goals Sunday afternoon (including the second-period game-winner). Noesen finished the three-game set with four goals and three assists to move to a tie for fourth in the AHL with 24 points (10G, 14A).
Not to be outdone by his linemates, Smith needed just two periods Friday night to rack up his second career hat trick. The 27-year-old Des Moines native added another goal Saturday night, then handed out two assists Sunday to move into second place among AHL scoring leaders with 27 points (10G, 17A). He carries a four-game point streak into this week.
REWIND (3-0-0-0)
SUNDAY, DEC. 12: CHICAGO 7, (at) TEXAS 2
After giving up the opening goal in the opening minute, the Wolves responded with the next five tallies to sweep the three-game set in Texas and push their winning streak to nine games.
Forwards Stefan Noesen and Jack Drury posted two goals and one assist apiece while defenseman Josh Jacobs
and forwards Andrew Poturalski and Spencer Smallman also scored.
Goaltender Eetu Makiniemi posted 26 saves to earn his fifth straight win.
SATURDAY, DEC. 11: CHICAGO 4, (at) TEXAS 3 (OT)
After the Wolves and Stars took turns scoring one goal each period during regulation, Andrew Poturalski set up Stefan Noesen 3:20 into overtime for Chicago's eighth straight win.
Noesen posted two goals, Poturalski produced four points (G, 3A), C.J. Smith scored one goal and defenseman Jesper Sellgren handed out two assists.
Goaltender Alex Lyon rejected 27 shots to win his fourth game in a row.
THURSDAY, DEC. 9: CHICAGO 8, (AT) TEXAS 4
After the teams took turns scoring the game's first four goals in the opening 3:36 and trading the first eight goals in 32 minutes, the Wolves scored the final four to win their seventh in a row.
Forward C.J. Smith posted a hat trick and Josh Leivo scored a career-high five points as Leivo (2 goals), Andrew Poturalski, Jack Drury and Joey Keane lit the lamp for the Wolves.
Goaltender Eetu Makiniemi recorded 19 saves to earn his fourth straight win.
NEXT FIVE GAMES
Thursday, Dec. 16 vs. Manitoba 11 a.m. Allstate Arena AHLTV
Friday, Dec. 17 at Milwaukee 7 p.m. Panther Arena AHLTV
Saturday, Dec. 18 vs. Milwaukee 7 p.m. Allstate Arena My50
Wednesday, Dec. 22 at Cleveland 6 p.m. Rocket Mortgage FieldHouse AHLTV
Thursday, Dec. 23 at Cleveland 6 p.m. Rocket Mortgage FieldHouse AHLTV
All games are streamed on AHLTV.


I remember seeing a video of a commencement speech a long time ago, where the speaker, who happened to be a member of the military, spoke on the importance of making your bed. That speech had a huge impact on me. I absolutely understood what he was saying and since then, I've tried my best to make my bed daily. I'm not sure what it is about having the bed nice and tidy early in the morning, but it definitely sets me off on the right step for the rest of the day.
Author of the book The Power of Habit, Charles Duhigg calls making your bed a "keystone habit." Or rather, one that starts a string of other really good habits throughout the day.
So….maybe on this day, on #MakeYourBedDay….consider making your bed and maybe changing the world, one fold at a time.
And also, when I'm tired in the evening and ready to lay my head down, that nice, clean bed always feels more welcoming.
The Benefits Of Infrared And Why You Must Try Out Burbank Infrared Sauna!


Writers Boon is a Publishing App that helps authors and bloggers navigate the publishing and marketing maze, connects them with proven resources and saves them money by featuring offers, discounts and promotions.
An encyclopedia of well-organized knowledge and resources, built using state of the art technologies from world's #1 database solutions provider — Oracle, Writers Boon is everything and everyone writers need in one place.
Lawyer, mediator and author, Carol is responsible for overseeing strategic vision for the product, marketing, brand and PR.
Working on a Writers Boon story?


text:
Musical Odyssey
BLUES CONNECTION
www.hillmanweb.com
There are only two kinds of music:
"Blues...and Zippity-do-dah"
~ Emmylou Harris
Over the past 40 years we've enjoyed playing a wide variety of styles and genres: rock 'n' roll, country, big band, folk, western, old time, rock, bluegrass, pop, gospel, country rock, originals, cajun . . . and every combination of the above. . . but we keep returning to the music that forms the bedrock of so many of the music styles we enjoy
. . . the Blues.
My first influences, when I started to learn guitar and songs back in the '50s, were largely blues-based, although I didn't realize it at the time. I grew up on a farm on the Canadian prairies -- not exactly the heart of black blues culture. I didn't have access to the records or airplay of the blues greats but the music on the records I played day and night owed a great deal to
My big influence was Elvis and his fellow Sun Records artists out of Memphis. A few of the obvious blues titles in Elvis's repertoire include: That's All Right Mama, Good Rockin' Tonight, Milkcow Blues Boogie, Baby Let's Play House, Mystery Train, I Got a Woman, Heartbreak Hotel, Money Honey, My Baby Left Me, Tutti Frutti. Shake Rattle and Roll, Lawdy Miss Clawdy, Hound Dog, Long Tall Sally, Mean Woman Blues, One Night of Sin, Blue Christmas, Trouble, Reconsider Baby, What'd I Say, Hi-Heeled Sneakers . . . these and many more of their songs were
Elvis's success launched the birth of a music form that would change the world: rock & roll. This "new" music form was really just a fusion of blues, country and gospel. Indeed the main criticisms of this new R&R music were actually of the elements that make a good blues song or performance: simple chord structure and words, repetitive lyrics and hooks, heavy backbeat, "muh babee dun me wrong" themes, racy lyrics full of double entendres, slurred southern accents, slang and bad grammar, over-reliance on distorted guitars and pounding pianos, singer-penned lyrics, gospel/blues screams, suggestive body movements, gospel choruses. . . all characteristics that every blues aficionado looks for in
My music listening marathons, guitar practice sessions and record-buying frenzy now branched out to encompass a wildly eclectic mix of performers -- but the fuel that propelled most of the music created by these artists was
. . . the Blues:
Little Richard, Chuck Berry, Fats Domino, Bill Haley and the Comets, all the Rock-a-Billy guys, a whole parade of one-hit-wonders, Lonnie Donegan and his Skiffle Group, Louis Armstrong, Paul Whiteman, Jimmie Rodgers, Dinah Washington, Ray Charles, Mahalia Jackson, the Staples Family, Lonnie Mack, Bob Dylan and many of the artists from the folk craze.
When the British Invasion with The Stones, Beatles, Animals, et al arrived it started to dawn on general audiences . . . and myself . . . that the driving force behind so much of the popular music we had been listening to since the mid-'50s was
Largely unrecognized old blues singers, many of whom had spent a lifetime living a hand-to-mouth existence on the road or playing dingy juke joints came out of relative obscurity or retirement to receive long overdue recognition, and, in some cases, to salvage some of the royalty payments that had been denied them for so many years. The world had finally recognized an important roots music
Proud Members of the Brandon Blues Society
Support The Blues and Live Music
HILLMAN BLUES PERFORMANCE SCRAPBOOK
SOO'S Saturday Nite Jam
2000.06.10 SOO'S Blues Jam
SOO'S Saturday Nite Jams
October 2000 SOO'S Saturday Nite Jams
The "Ron and Jan Show"
Part V Jammin' with Bobby Curtola at
Ken Daniels' Cantina
First Annual Brandon Blues Festival
Brandon University Blues Overtook Me Concert
At Soo's Showhall
Bobby Curtola Sock Hop Reunion
Manitoba Room ~ Keystone Centre Hillman Musical Odyssey Scrapbook
Brandon Blues Montage
Blues Hall of Fame I Blues Hall of Fame II
Hillman Archive of Song Lyrics
Hundreds of Lyrics - MP3 - YouTube Videos PUKATAWALKIN' BLUES
Hillman Vintage Guitars Hillman Blues Connection
SHAKIN' ALL OVER TRIBUTE TO MANITOBA MUSICIANS
WINNIPEG MUSEUM OF MAN AND NATURE
To Hillman Odyssey Bio
~ Welcome To The Hillman Eclectic Studio ~
Gateway To Our Thousands Of Web pages
HILLMAN MUSICAL ODYSSEY
Webmaster: Bill Hillman
Bill & Sue-On Hillman Eclectic Studio
Copyright 1996-2010 Bill & Sue-On Hillman, Inc.
Odyssey Illustrated Intro
The Devil's Music
Blues Forum
The Official Blues Ring
[ Join Now | Ring Hub | Random | << Prev | Next >> ]
Music Directory | OfficialDiscussion | Instrument Makers
TO THE HILLMAN MUSICAL ODYSSEY CONTENTS
TO THE HILLMAN MUSICAL ODYSSEY ILLUSTRATED CONTENTS
Copyright 2001/2010 Bill Hillman


text:
Clinton teams with Target
Duo to "make fasion history"
By The Truth* Staff
MINNEAPOLIS (May 22,2008) Target (NYSE:TGT) announced plans of a joint venture with New York Senator/Presidential Candidate Hillary Clinton. A memo released today by the big-box retailer details plans to manufacture a line of "Hillary Rodham Clinton" Pantsuits for women. The clothing, to be designed by fashionista Joy Gryson and manufactured in Target's Minneapolis, MN plant, will carry the slogan, "It Just Won't Quit!"
According to the press release, "The Hillary Clinton Pantsuit will represent the apex of feminine, yet powerful design. Designer Joy Gryson's durable, quality Pantsuit has been road-tested all across America, from Iowa to New Hampshire to Kentucky, all along the way proving its immense popularity and indefatigable nature." Industry critics aren't so rosy about the Pantsuit, and point to low thread counts in early prototypes. "The numbers don't lie," said one designer wishing to remain anonymous. "Clinton's thread count won't be able to mach the thread count of rival suits. She should be wise and bow out before any real damage is done."
Sales projections, however, show the Pantsuit to be a hotly expected in certain areas such as Pennsylvania, California and New York. Detractors to the venture argue such areas would be receptive to any manner of well-crafted suit, rendering the Clinton/Target venture redundant. The Clinton Campaign could not be reached for comment. Although its effects on Campaign Finance Laws are still under review, all profits from the Pantsuits, which go on sale the first quarter 2009, are set to go to the Hillary for President 2008 Campaign fund.
Amazing Off-the-Rack Book Outfits for Animal Crossing: New Horizons


Significance of email communications for an organization is a bygone conclusion. Every enterprise relies on seamless support of a devoted email resource such as MS Exchange, which offers much more than a robust E-mail functionality. Users can leverage Microsoft Exchange for contacts, tasks, and calendars among others.
These and many more features of MS Exchange enhance dependability of communications that are based on emails so that routine business processes are streamlined.
Management and backup of emails is enabled via POP3 email in traditional hosting environments. Since the email and related data is stored on computers, the option of hosted email exchange that resides in cloud can prove to be highly reliable. MS Exchange hosting obviates storing of data on hosting provider's computers by securely storing these in the cloud.
Assured backing up of emails- Unlike traditional POP3 mail system that suffers from fear of data loss, MS Exchange hosting provides guaranteed security of email backup through centralizing.
Protected communications- In order to achieve active protection of business critical email communications, MS Exchange is empowered by out of the box defenses with seamless updates. In addition, regular updates provide reliable defense against ever-increasing malware or ransomware threats.
Improved sharing- Inter-office communications are enhanced with superior sharing of information across workforce. Moreover, calendar sharing feature of MS Exchange hosting further improves productivity within an organized infrastructure.
Businesses need to safeguard their mission critical data against growing incidences of cyber threats. The native defense mechanism of an MS Exchange hosting solution provides assured security against a wide spectrum of email threats. Multiple layers of spam filters offer round the clock protection against complex spam as well as phishing attacks. Additionally, users can be assured of remarkable anti-virus protection.
Integrity of vital data is an essential aspect of business continuity and unlike the POP3 mail system, MS Exchange enables a reliable hub that provides impeccable backup of email with excellent accessibility.
MS Exchange is designed for outstanding reliability, which is backed by wide array of enhancements and performance improvements to earlier versions. MS Exchange hosting enables detection of database corruption instances and also offers proactive detection to prevent further glitches. Database divergence detection not only boosts automated repair capabilities but also simplifies upgrades and hardware repairs.
Every enterprise finds it difficult with growing volume of incoming mail as the business grows and this calls for an intuitive approach to email search. MS Exchange hosting email search functionality is backed by an in-depth analysis of practical search scenarios and their individual response times.
Outlook client can now look forward to a remarkably enhanced server side search since search queries are performed by leveraging strong index of server for comprehensive and faster results in comparison with desktop searches.
Search architecture of MS Exchange has been overhauled for improving speed and reliability of eDiscovery search. This has expanded the distribution of work for greater fault tolerance and has also enabled search across more number of servers.
There is better search scalability through user interface in MS Exchange 2016 to help users get faster and guaranteed results.
If you need to store significantly large volumes of data, then MS Exchange hosting has you covered since it can automatically provision auto-expanding archive mailboxes as soon as the existing mailbox's size reaches hundred GB.
The auxiliary mail boxes can be provisioned in increments of fifty GB to help accommodate growth in data archiving requirements.
MS Exchange has always been appreciated for its outstanding Data Loss Prevention attributes. In addition to enhancement of the existing data types to strengthen Data Loss Prevention capabilities MS Exchange offers greater assurance of safety and integrity of mission critical data.
DLP capabilities are further reinforced in new version of MS Exchange 2016 with addition of a broad array of additional information types such as common data types in Europe, South America, and Asia.
With growing instances of mergers and acquisitions, there is a need for smoother as well as faster transition of the existing business to cloud. MS Exchange hosting offers an excellent feature of hybrid capability to facilitate cloud deployments.


Heading into 2017, Redfin data scientists and thought leaders put their heads together to predict what the housing market has in store for the new year, under a new president. The Trump administration ushers in three major policies that could significantly affect the long-term trajectory of the U.S. real estate market: infrastructure spending, tax cuts and changes to immigration policy. This year, as these policies begin to take shape, their effect will mainly play out in new construction and mortgage rates.
Strong buyer interest, better access to credit and a modest increase in the number of homes for sale will allow home sales to grow, but not as much as in 2016. Home price growth will hold steady. Homes will sell even faster, breaking last year's record as the fastest real estate market.
New construction growth will slow.
Thinking about buying or selling in 2017? We can help you sell your home or buy your dream home.


Four times a year the winegrowing community of the Santa Cruz Mountains comes together to celebrate the generations of farmers, vintners and families that are the roots of the Santa Cruz Mountains wine region. Over the last 20 years the event has become a beloved tradition among wine lovers who enjoy wines produced by our legendary, artisan winemakers all within the idyllic Santa Cruz Mountains. The third Saturday of January, April, July and November, passport guests are welcomed into 50+ wineries throughout the Santa Cruz Mountains, each offering a unique pairing of artisan handcrafted wines, gourmet food and entertainment. Meet the winemakers, grapegrowers and sample exclusive vintages from wineries generally not open to the public. Delight in discovering each winery's unique Passport "theme," a tradition of the event. The possibilities are as varied as the wineries themselves and promise a fun, unforgettable weekend.
Left Bend Winery will be pouring it's wines at our new tasting room in Los Gatos. Passports will be available for purchase from the winery or from SCMWA. Passports are $55. Tastings without a Passport are $10. Tasting fee waived with any purchase of Left Bend wine.


text:
Race row as residents told 'wear earplugs' for Ramadan
The post by the EH4 Residents Association referred to noise concerns surrounding Blackhall Mosque. Picture: Jane Barlow
JOHN-PAUL HOLDEN
Published: 08:41 Updated: 10:04 Monday 22 June 2015
A SOCIAL media post advising residents living next to a mosque to "stock up on headphones and earplugs" during Ramadan has been branded "racist and Islamophobic" by equality leaders.
The Facebook message was posted on a page used by EH4 Residents Association and removed after the group was contacted by the Evening News.
The post referring to the Blackhall mosque.
The organisation was set up to represent residents living in Drylaw Crescent, Drylaw Gardens and House O'Hill Road, and works to address concerns over issues such as crime, traffic and street lighting.
Posted on May 30, the message read: "Ramadan is early this year. Jun 18-Jul 17. If you live close to the [Blackhall] mosque and have to stay put, might be an idea to stock up on headphones/
earplugs etc."
Foysol Choudhury, chairman of the Edinburgh and Lothians Regional Equality Council, said the post would have been seen as offensive to Muslims.
He said: "For anyone to refer to the use of headphones to avoid hearing prayers from a mosque is a hateful religious and racial insult that is based on Islamophobia.
"When a group of people talk about something in that way, it's going to go to more people. It expresses an undercurrent of hatred. Just giving ideas to people is dangerous."
He added: "What has been posted is encouraging other people to open up a chapter and start talking negatively. There should be a strong line drawn here – not only for Muslims but for all religions."
Political figures said they were aware of past concerns over noise and congestion caused by parked cars around Blackhall Mosque.
But they stressed mosque leaders had taken steps to address these, adding that no recent complaints had been received.
Councillor Iain Whyte, Conservative member for Inverleith, said: "I know the mosque has gone out of its way to reduce any noise that comes from the building.
"My understanding is that if somebody feels offended for reasons of race or religion then that is an offence. I would hope that if people have said something that has caused offence, they would recognise that and apologise for it."
Councillor Lesley Hinds, Labour member for Inverleith, said: "It's clear [that] people have found this insulting and I welcome the fact that the group has taken account of that and taken [the post] down."
Edinburgh Airport flyers face ban or even jail for rowdy behaviour
Police Scotland said it had not received any complaints, but said an assessment would be carried out to see if further investigation was needed.
Ramadan is the ninth month of the Muslim calendar and is observed worldwide as a period of fasting to commemorate the first revelation of the Quran – Islam's central religious text – to the prophet Muhammad.
The Evening News made repeated attempts to speak to the EH4 group, but no-one responded to our messages.
Leaders at Blackhall Mosque also declined to comment.


Break free from the limitations of a fixed light source with Lucis wireless lighting – a portable lamp that gives you around 80 hours of continuous lighting on a single charge. No cables, not tangles, no mess – mood lighting will never be the same again as it does not have to be restricted to your living room or bed room but can go with you wherever you want – even outdoors.
Lucis is capable of emitting 16 million different shades of color and give you the best experience with light. Designed using contemporary Plexiglas housing, the lamp takes the concept of mood lighting to another level and fills any space with any color you want easily.
Lucis helps you set the tone of your ambient lighting and determine the atmosphere whenever and wherever. With only 4 hours of charging, Lucis provides up to 80 hours of continuous lighting. You could use it outdoors on a warm summer night at the beach or even on a camping trip. The possibilities are practically endless.
The beauty and quality of Lucis does not only come from the inside. Even the external design of the lamp is practically flawless and flush, without external buttons and most importantly cables. The touch and shake sensors work easily and literally give Lucis the finishing touches.
Lucis is powered by 250 – lumen similar to a 25watt lamp and is adjustable to over 16 million different colors. The lamp measures a perfect 4.3" x 4.3" x 4.3" and is also splash-proof, making it the perfect choice for summer nights by the pool or on the lake.
The lamp can be purchased online for $49 with premium models and tripod stands available at an additional cost. Most lamps on the market do not have the portability and power of Lucis. This is a product that can seamlessly be used indoors and outdoors pioneering a new category in portable lifestyle lamps – a lamp in harmony with material, design, lumen output and portability.


As a locally based broker with an in-depth knowledge of the Newquay property market, the Mortgage Advice Center is ideally placed to help you find the perfect finance package for your new home or business premises. Over the years, we have arranged numerous commercial and residential mortgages in the area and we would be delighted to help you finance your property purchase in the near future.
If you are living in the town itself, you can visit our office in nearby Truro, around 14 miles down the road. Alternatively, we can conduct consultations over the phone before we start to search for the right mortgage for you. We have helped clients in all areas of the country so please do not hesitate to call, wherever you are located.
There are a number of reasons that our clients insist on dealing with us whenever they need to arrange finance for a property purchase.
1. Independent, Friendly Advice – Whether you are looking forward to buying your very first property or you are a seasoned real estate investor, having a friendly broker by your side to offer expert advice when needed can make life much easier.
2. Access to the Whole Market – Because we are completely independent, and registered as such with the Financial Conduct Authority, you can rely on us to leave no stone unturned when searching for competitive mortgages and insurance products. We have access to the entire market because we are not tied to any particular provider.
3. Customer Focused – Our primary aim is to ensure that your needs are met in full. We have no obligation to the lenders whose products we may recommend so you know that whatever finance packages we suggest will be those that are best suited to your specific needs. When you deal with us, you know that you have the backing of an experienced mortgage broker in Newquay who always has your best interests at heart.
4. Wide Range of Products and Services – From simple mortgages to complicated refinance packages and competitive equity release mortgages, the Mortgage Advice Center can advise on a wide range of financial products and services. Our FCA approved consultants have an in-depth knowledge of the latest offerings from UK lenders and insurance companies, enabling them to provide you with accurate advice whatever your needs may be.
Although we highly recommend that you speak to one of our fully qualified and experienced advisors if you would like to find out more about mortgage repayment rates, together with the likely amount that you can borrow, we do provide a number of free tools on our site that are designed to give you a rough idea of the figures involved.
If you would like to do some research before you speak to one of our consultants, please feel free to use our online mortgage borrowing and repayment calculators. We also have repayment tables and a remortgage calculator available for your use.


text:
Sundays in May are for Miami Book Fair's Haiti Book Festival
Posted By	Josie Gulliksen
Author MJ Fievre, program director of the Miami Book Fair's Little Haiti Book Festival and Read Caribbean Program. Photo courtesy of the author.
The rich, colorful heritage that is the Haitian Diaspora is in the spotlight in May during Haitian Heritage Month.
Part of that celebration is the Little Haiti Book Festival, this year celebrating its eighth anniversary, the last five in collaboration with the Miami Book Fair. Festival events are happening every Sunday in May.
"Our Festival is part of the Book Fair's ReadCaribbean program as well as Sosyete Koukouy of Miami," said MJ Fievre, program director for both the Little Haiti Book Festival and ReadCaribbean Program. "The Festival is their spring event then in the fall, they host a series of panels."
Echoing that sentiment is Lissette Mendez, director of programs for the Miami Book Fair said, "we have partnered with Sosyete Koukouy once again to present the Little Haiti Book Festival, and we couldn't be prouder about the variety of topics being covered this year."
Fievre who has written several books, shorts stories and poems and serves as translator, was one of the presenters at the initial Haiti Book Festival as both an author and panelist.
"It really allowed me to mingle with other authors and expose me to other people in the Diaspora too," said Fievre. "The Little Haiti Book Festival has always been a great, thrilling event because it's all about Haiti and of course being part of the Diaspora I love that it helps me reconnect with my roots."
At the beginning, the festival committee was very small and then several years into it, the Miami Book Fair expressed interested in supporting them. They wanted to help with logistics and of course Fievre and the organizers loved the idea.
Collaborating with the Miami Book Fair meant Little Haiti finally got the exposure that the widespread Book Fair audience offered. That audience included people from as far as Key West to the south and West Palm Beach to the north.
"Our organization and attendance grew as well," said Fievre. That is until 2020 when the pandemic hit and "we were very fearful because of the uncertainty of when we would come back and could we survive."
Coming together and taking the festival online was actually a great opportunity for them to grow their community.
"By using Facebook Live we've heard from a Haitian person living as far as New Zealand and from Georgia here in the United States as well. We hear from a remarkably diverse, far-reaching audience during these events," said Fievre. Like most cultural organizations, they plan to continue online presentations next year to maintain and expand their audiences.
Providing such widespread exposure was important to the Miami Book Fair said Mendez. "It's a time for people of Haitian heritage all over the world to connect and take a deep dive into their culture for one hour a week, and for those of us who only speak English but want to learn more about Haiti, subtitles online make it easy."
The Festival works in two ways, featuring a few select pre-recorded programs along with the live online events which people love "because they can ask questions live and we can provide the answers directly to audience members. It is great to see their reaction and be part of that conversation," Fievre said.
Since social media is a big part of this year's event it makes sense that one of the Sunday presentations during the Festival deal with the topic. On May 23 four presenters will discuss "Gray Areas: Human Relations and Critical Thinking in the Era of Social Media."
The presentation will delve into how social media has helped Haiti, particularly points people that were able to be rescued after the 2010 earthquake thanks to social media, through Facebook and What's App. Although phones were not working for many those two means of communication truly helped save lives.
Fievre says "Haiti is a country of many extremes…violence, beauty, poverty… and social media can keep you safe in dangerous areas in Haiti and so you can plan a safer route. Our presenters on the 23rd will also discuss the misuses of social media, when it is used in a negative way."
To close out the Festival on the 30th they are presenting a full program for kids with storytelling as a reminder that books and storytelling remain at the heart of the Book Fair's mission.
Authors from Canada, Maryland, Washington DC and of course Haiti, will read to the kids using different types of Haitian Creole and they will also be hosting cooking segments. The varieties of Haitian Creole will be the May 16th topic.
"We keep it at a level that's great for the kids and I know my niece always looks forward to these kid's segments. Also, we offer subtitles so if they do not speak Haitian Creole, they can read along," said Fievre.
The month-long festival is a true culmination of a decades-long goal by the Miami Book Fair "to include and represent all members of our community and with the support of the Green Family Foundation, we've been able to create programs that honor our Haitian family in Miami and beyond, said Mendez.
WHAT: Haiti Book Festival
WHEN: Sundays through May 30
WHERE: Online on the Miami Book Fair website
INFORMATION: Miami Book Fair or Sosyete Koukouy
ArtburstMiami.com is a nonprofit source of theater, dance, visual arts, music and performing arts news. Sign up for our newsletter and never miss a story.
Julia Tuttle — The Mural Needs a Home
Posted By Gina Perez, 01.25.2022
Julia Tuttle, the Mother of Miami, is just days away from being homeless.
Open Call for Miami Film Festival's Knight Heroes Progr...
Posted By Sergy Odiduro, 01.21.2022
Every year there's new filmmakers that are sending in their work that I've never heard of, never met, and that have been working here in Miami developing their stories. [Jaie Laplante]
With Abstract as with Life, You Create It
Visual Artist Roxy Sora reminds us: Never Give Up on Your Dreams.


19.06.2014 RT I, 29.06.2014, 109 01.07.2014, official titles of ministers replaced on the basis of subsection 107³ (4) of the Government of the Republic Act starting from the wording in force as of 1 July 2014.
Termination of Pregnancy and Sterilisation Act provides for the conditions and procedure for termination of pregnancy and sterilisation.
Termination of pregnancy means the removal from the uterus of a foetus or embryo by surgical means or administration of medicinal products.
The duration of pregnancy is calculated in weeks.
2) the blocking or cutting of a man's vas deferens for avoiding fertilisation.
(1) A woman's pregnancy may only be terminated at her own request. Nobody is allowed to force or influence a woman to terminate her pregnancy. Consent for termination of pregnancy shall be in written form.
(2) Pregnancy of a woman with restricted active legal capacity may be terminated with her own consent or with the consent of her legal representative according to subsection 766 (4) of the Law of Obligations Act.
(3) If a woman with restricted active legal capacity does not agree to involve her legal representative with good reason in the case provided for in subsection 766 (4) of the Law of Obligations Act or if the decision of the legal representative is in conflict with the interests of the woman, the health care provided shall proceed from the person's own consent upon termination of pregnancy.
(4) A health care professional shall be required to inform a woman with restricted active legal capacity of the importance to involve a legal representative or another adult with active legal capacity whom she trusts.
(1) Pregnancy may be terminated if it has lasted less than 12 weeks.
5) the pregnant woman is over the age of 45.
Only gynaecologists shall have the right to terminate pregnancy.
Gynaecologists or other health care professionals cannot be required to terminate pregnancy or participate in the process of termination of pregnancy.
(1) Pregnancy can only be terminated by a health care provider holding the activity licence of gynaecology for the provision of health services.
The existence and duration of pregnancy shall be established by a gynaecologist, family physician or midwife. The existence and duration of pregnancy shall be established on the basis of the information received upon questioning and examination of the woman and, if necessary, by means of diagnostic equipment.
(1) A doctor who terminates pregnancy shall decide on the admissibility of termination of pregnancy based on the requirements specified in sections 5 and 6 of this Act.
(2) The admissibility of termination of pregnancy in the cases described in clauses 6 (2) 1), 2) and 3) of this Act shall be ascertained with the decision of at least three doctors – two or more gynaecologists and a medical specialist or specialists resulting from the woman's illness or health problems. If necessary, a social worker shall be involved in the making of a decision in addition to doctors in the cases specified in clause 6 (2) 3) of this Act. A decision on admissibility of termination of pregnancy shall be in written form and certified by all the persons making the decision with their signatures.
(3) The existence of conditions specified in clauses 6 (2) 4) and 5) of this Act shall be ascertained on the basis of a pregnant woman's passport, birth certificate or other identity document.
(1) Before the termination of pregnancy, the health care professional must explain to the woman who wishes to terminate her pregnancy or in the case provided for in subsection 766 (4) of the Law of Obligations Act to the legal representative the biological and medical nature of termination of pregnancy and the involved risks, including the potential complications.
(11) The health care professional shall inform a pregnant woman or a woman who wishes to terminate her pregnancy or in the case provided for in subsection 766 (4) of the Law of Obligations Act her legal representative of the psychological and other relevant counselling possibilities, if necessary.
(2) An act shall be prepared on the obligatory counselling specified in subsection (1) of this section which shall be signed by the counselled person and the health care professional having conducted the counselling. The act of counselling shall be drawn in two copies one of which shall be given to the health care professional and the other to the counselled person.
(1) The doctor having established the existence and duration of pregnancy shall perform all the examinations and acts corresponding to the relevant treatment standard prior to referral to termination of pregnancy. The list of examinations and acts prior to and following the termination of pregnancy shall be established by a regulation of the minister responsible for the area.
(2) The doctor who terminates pregnancy shall check the results of examinations specified in subsection (1) of this section prior to termination of pregnancy.
(3) A woman whose pregnancy is terminated shall be admitted for hospital treatment if her pregnancy has lasted for more than 12 weeks or if the woman's medical status so requires.
(1) Immediately after termination of pregnancy a doctor shall apply measures preventing complications which may accompany the termination of pregnancy. The list of measures shall be established by a regulation of the minister responsible for the area.
(2) A woman whose pregnancy was terminated shall have the right within two weeks following the termination of pregnancy to consult with the doctor having established the existence and duration of pregnancy out of turn on the conditions of emergency care.
Termination of pregnancy shall be documented according to the requirements established in the Health Services Organisation Act.
(1) The Ministry of Social Affairs shall collect and process data concerning the termination of pregnancy for the development of national social policy in the field of family planning, increasing the number of births and decreasing the number of abortions as well as for ensuring the quality of health services and exercising supervision over the organisers of termination of pregnancy and as an obligation of a member of the World Health Organisation for the submission of reliable data comparable with other countries thereto.
3) the procedure for coding and submission of data.
(3) The collection and processing of data concerning the termination of pregnancy shall be in compliance with this Act, Public Information Act, Personal Data Protection Act and other Acts and the legislation established on the basis thereof, which ensure the processing of sensitive personal data in the authority prescribed therefor in this Act and the comprehensive protection of personal data by all possible organisational and technical means, including the transfer of coded data to the person who maintains a database or to a person authorised thereby.
(1) The minister responsible for the area shall establish a termination of pregnancy database for the collection and processing of data related to termination of pregnancy.
(2) The establishment of termination of pregnancy database shall take place pursuant to the procedure provided for in the Public Information Act.
(1) The controller of termination of pregnancy database shall be the Ministry of Social Affairs.
(2) The exerciser of the rights of processor of termination of pregnancy database shall be determined by the minister responsible for the area.
(1) A person may only be sterilised at his or her own request. A request for sterilisation shall be in written form.
(2) The sterilisation of a person with restricted active legal capacity shall be decided by a county court in proceedings on petition of the guardian of a person. Minors may not be sterilised.
6) the person's illness or health problem hinders the raising of a child.
(2) An adult with restricted active legal capacity may be sterilised if at least one of the conditions specified in clauses (1) 3), 4), 5) or 6) of this section exists.
A person can be sterilised by a gynaecologist, general surgeon or urologist.
A person may only be sterilised by a health care provider holding an activity licence of gynaecology, general surgery or urology for the provision of health services.
(1) The conditions specified in clauses 20 (1) 1) and 2) of this Act shall be ascertained by a doctor performing the sterilisation on the basis of a person's passport.
(2) The admissibility of sterilisation in the cases specified in clauses 20 (1) 3), 4) and 5) shall be decided with the decision of at least three doctors. If necessary, a social worker shall also be involved in the making of decision in addition to the doctors in the case specified in clause 20 (1) 6) of this Act. The decision on admissibility of sterilisation shall be in written form and certified by all the persons making the decision with their signatures.
(1) Before and after deciding on the admissibility of sterilisation, the doctor must explain to the person who wishes to be sterilised and, if necessary, to the guardian of the person the biological and medical nature of sterilisation and the involved risks, including the potential complications.
(2) An act shall be prepared on the counselling specified in subsection (1) of this section which shall be signed by the counselled person and the doctor having conducted the counselling. The requirements for the format of the act of counselling shall be established by a regulation of the minister responsible for the area.
(3) A person shall not be sterilised before one month has passed since the counselling specified in this section.
Sterilisation shall be documented according to the requirements established in the Health Services Organisation Act. Data concerning sterilisation are sensitive personal data and the formation of databases thereof shall not be allowed.


text:
San Giovanni Battista is a Romanesque-style, Roman Catholic pieve, or rural parish church with baptistery, located in the village of Mensano, in the comune of Casole d'Elsa, Tuscany, Italy.

History
A church at the site is documented in a papal bull of Pope Alexander III since 1171. Inscriptions uncovered in the three nave church attributed work of maestro Buonamico in the construction. Traces of 13th-century frescoes are present.

References

12th-century Roman Catholic church buildings in Italy
Romanesque architecture in Tuscany
Churches in the province of Siena

redpajama_set_name: RedPajamaWikipedia


Greg and I recap Week 10 of the MLB Season. We go through the Hot & Cold Teams, Players of the Week, Phillies and Red Sox Talk, and Bleacher Creatures. We wrap things up by making their picks for the US Open and the World Cup. Let us know what you think in the comments!
June 14, 2018 in The Bullpen Cart Podcast.


text:
Sugar-N-Spice Kiddie Haven Inc.(Sugar-N-Spice) was born February 16, 1981. The daycare idea was conceived by a father/daughter team who took the idea, of creating a "home away from home" and providing a place where parents could leave their children while they went to work. The dream became a reality when the doors opened February 16th with three children in attendance. By September of '81, the centre was full. At that point, Sugar-N-Spice became a non-profit government funded program. A school age program was added at that time.
Since 1981, Sugar-N-Spice has maintained full capacity. Our best advertisement has been "word of mouth". Hundreds of children have passed through our doors.
The centre operated at 2400 Main Street from February '81 until July 1997. At that time Sugar-N-Spice moved into a brand new facility attached onto the east side of Ecole Riverbend Community School. Although attached, we are a separate entity, governed by an elected volunteer 12 member Board of Directors with parent involvement, and not part of the school system.
In April 2008, Sugar-N-Spice opened its second location at 101 Ridgecrest Ave – located within West Kildonan Collegiate. This move added 70 spaces to our program and allowed Sugar-N-Spice to add infant care to its repertoire. This decision also allowed us to increase our school age spaces to 66 in total.
In 2011, Sugar-N-Spice was pleased to expand our school age program by 21 spaces and the infant program by 2 spaces. We opened our third location in Ecole Riviere Rouge in 2016. This center has 8 infants, 60 pre-school and 60 school age children. We now have a total of 342 spaces across all three locations: 22 infant, 173 preschool, and 147 school age.
Sugar-N-Spice Kiddie Haven Inc. is a not for profit, charitable organization licensed by the Province of Manitoba Early Learning and Child Care Branch. We are also an organizational member of the Manitoba Child Care Association (MCCA).
If you would like further information, please do not hesitate to contact our Director at our West Kildonan location (204 334-6357) or our Director at our Riverbend location (204 339-4992) or École Rivière Rouge (204-339-4345).
Jan. 11- Due Date and PADS submitted Jan. 12 –... continue reading
This and That… Fundraiser Cookbook We are currently working on... continue reading
Copyright © 2014-2021 Sugar N' Spice Kiddie Haven Inc. | Website by SWD


Everyone's life is worth saving—even that of an aging dog. Someone from Bangkok, Thailand values the life of a dog that he even put his life on the line to save the animal.
A netizen who goes by his Facebook username 'Tibet Nimitput' uploaded photos and video of a man who did not hesitate to jump into the polluted Saen Saeb canal in Bangkok to rescue an aged stray dog.
According to his post, he was aboard a passenger shuttle boat traversing the canal when he saw a man on top of the bridge looking down on a man holding a dog. He said that because of its age, the dog must have slipped down the canal. Luckily, the man was quick and was able to rescue the dog from drowning. However, they cannot climb up the bridge, so the man and the dog were floating around the foul-smelling canal.
He talked with the driver of the shuttle boat to stop and pick up the man and the dog so they could go to the docks. When they came near the pair, the ticket collector from the boat picked up the dog while the man said that he would climb up the docks through the nearby pole.
He praised the man for not hesitating to rescue an aging stray dog. He also thanked the boat driver and the ticket collector for their efforts to help both the man and the dog.
Tibet's post has been shared more than 22,000 times and gained 56,000 reactions from the netizens.


There is a per day cost for respite care services; please call for rates. Discharge is anticipated within 60 days, or an assessment by one of our registered nurses is completed to determine current status and make recommendations for appropriate service options. Other skilled services, such as physical therapy, will need to be purchased from the health care provider of your choice.


text:
Exclusive Artist Review: Roots Asylum – "Take Her Back, Louisiana" Single
Posted in Acoustic, Alternative, Blues, Careers, Country, Folk, Indie, Music Review, Pop, Press Release, Reggae, Rock, Single by Artist Reach, LLC
Back on the scene with a catchy anthemic single, Michigan-based quintet Roots Asylum continue to hit the ground running with their newest single "Take Her Back, Louisiana".
Diligently comprised of atmospheric guitar melodies, silky smooth bass lines and radio-worthy vocal choices, the five-piece group has put together a solid tune that resonates with just about any fan of folk-infused Roots Rock sensibilities. Utilizing a classic mid-western style with authentic production and performance value, Roots Asylum engages in a signature sound that touches on equal parts originality and familiarity; giving their audience a taste of something fresh yet still identifiable. Guitar/Vocalist Jimmy Macaroni really captivates the musical mind with this song by bringing authentically gifted vocal melodies to the forefront and carrying the torch with his carefully crafted leads. The band brings this sound together with great precision and really encapsulates an aura that makes this track an effective and impressionable gem.
The song definitely sustains staying power, where it has the power to stay with you even after it's over. It also gets better with each listen and will definitely entice you to dive deeper into the band's discography and career. You will discover a great unity of talent when listening to "Take Her Back, Louisiana" and Roots Asylum's breed of Roots Rock is definitely a standout of their calibre in all the right ways. The single is available now on Spotify, Apple Music, iTunes and several other digital music streaming platforms.
Connect/Listen:
Link to the single: https://songwhip.com/roots-asylum
Twitter: https://twitter.com/AsylumRoots
Facebook: https://www.facebook.com/asylumroots
© Artist Reach, LLC | ASCAP | All Rights Reserved
Acoustic, Alternative, Ambient, Artist Reach, Artist Reach Family, Artist Review, Artists, Bands, Blues, Country, Exclusive Review, Indie, Indie Artist, Music, Music Blog, Music Industry, Music Review, New Music, New Single, Pop, Pop Music, Press Release, Reggae, Review, Rock, Rock Music, Roots Asylum, Talent, Vocals
« Exclusive Artist Review: Walter Hansen – "Good Lookin'" Single
Exclusive Artist Review: Forsaken Garden – "Fruitful Dilemma" Single »


Later, the earth and other worlds (got created).
1. virAT - Splendor / Luminescence; arichya - separate from.
way how God is omnipresent and His glory.
Here, the mantra starts to talk about the creation.
God, in Its own nature is beyond forms. It is called Parashiva.
Forms, which are called the Maheshwara Murthams.
- The Formless, the Form of Light and the vivid Forms.
A very important point on the relationship of God with the world is being made here.
distinct from us or any of the creations.
God stays with us - in union, in association and as separate as well.
It is a unique relationship where the togetherness spans all these aspects.


Detailed interactive wiring diagrams Our diagnostics systems can access a multitude of brands including the major manufacturers, including: Alexander Dennis, Irisbus, Neoplan, Optare, Setra, Van Hool, VDL Volvo and many other brands.
Please contact us via telephone or email if you have any questions regarding our bus and coach diagnostics software, equipment and tools. Alongside this service we also offer a full Safety Check service for your Coach or Bus using our own workshops and trained technicians, Safety Checks are fully documented and in accordance with the current VOSA requirements.
Are you ready to make an enquiry?


text:
RENE CONETTE dropped a twenty on the wood as the bartender placed his whiskey, neat, in front of him. He took a sip, enjoying the burn as it moved down his throat. This was why he always paid for the top-shelf. Well, the fact was that he could, and that would have been enough. That it tasted so much better was a bonus.
He stood from his stool and wandered over to a booth near the stage and settled into it, pleased for the dark lighting in the tiny little club. If only the hangers-on could see him now. They'd never believe he'd chosen to come here, to be alone and anonymous and listen to some live music performed not by some hot, hip, or well-established band, but by someone local, possibly someone just starting out. Honoré had given him a tip that Sunday night's performer was worth making a special trip for.
He'd always enjoyed the atmosphere at the Painted Dog. Small and dark, it was never crowded but often full. From the outside it looked like a dingy little bar, but it was clean, it never smelled musty, and their poutine was Ottawa's best kept secret—utterly divine. When they threw in a musician worth coming for all on his own, that was perfect.
Rene took a sip of his whiskey, enjoying the way it heated him from the top of his throat all the way to his belly. He leaned against the back of the bench and closed his eyes for a moment, simply enjoying being on his own, with only the quiet murmurs of voices in the background and the occasional clink of glasses hitting wood. This was why he came here—it was relaxing, and he didn't have to talk to a single person once he'd ordered his drink. He opened his eyes after a few minutes and took another sip of his whiskey.
The bar went quiet as a lean man walked onto the postage-stamp-sized stage wearing nothing but a pair of leather pants and tattoos, the dark tribal ink covering the guy's arms, back, and chest. He grabbed an old acoustic guitar, sat on a stool, and began to play, one bare foot propped on a rung. How odd—no introduction, no applause. Just this dark-haired man and his guitar. How… intriguing.
Rene straightened in his seat, his plan of closing his eyes and leaning back to enjoy the music put to bed. This man deserved to be watched.
There was no question that the guy was in his own world, not even remotely paying attention to the audience, instead completely absorbed in his guitar.
Rene was utterly fascinated, the music intense, full of feeling. He couldn't put his finger on the style, on the inspiration, but the music seemed to be drenched in sex and need, in raw passion. This wasn't soothing music. This was sheer arousal, pouring from the guitar player's fingers to his audience. To Rene.
The bar remained utterly silent, barring the music. Rene spared a moment to glance around, and all eyes were on the player, everyone swaying slowly, as drawn in as he was.
This was utter magic. The musician played the crowd like a master despite the fact that he seemed utterly oblivious to his surroundings. The music grew in intensity, tightening around them all like a spring. Like a burgeoning orgasm. Rene was hard as a rock, every hair on his body standing on end. He wasn't simply sitting anymore either. He leaned forward, all of him straining to hear more, have more.
When the music climaxed, he swore there were people in the crowd who came too. The music floated, drawing them down, and then stopped, the man walking off stage without a word. Stunned, Rene spent a long moment simply sitting there, staring at the empty stage. It remained quiet in the bar too, as if everyone else felt the same way.
Rene shook himself and stood. Then, without hesitation, he headed to the door on the other side of the stage that led into the back, determined to find this musical magician.
A huge bouncer stood at the door, surprising the hell out of him. The bar not only wasn't big enough for a bouncer, it had never had one before in all the time he'd been coming here.
He gave the man a cursory nod and continued forward, aiming to go around the extremely large man.
"No one is allowed in the back, sir." The words were quietly spoken but quite firm.
"I'd like to meet the musician." It was more than that, though—it seemed to Rene they were meant to meet. The guy had been playing right to him, twisting them together with every note. How could this not end in an encounter?
"No one is allowed in the back, sir," the man repeated. "I'm sorry." The guy really was huge, his arms crossed over his chest making him appear immovable.
This wouldn't do at all. Rene wanted to meet the man who put his soul so entirely into his music. And want was such a pale word for how he felt. "Let me through," he insisted.
The bouncer's eyebrows drew together, a slight frown appearing on the implacable face. "Look, man."
"Dev, what's going on?" The voice from beyond the doorway was low, husky. Raw.
Rene answered as if the question had been asked of him. "This guy won't let me through."
"That's his job, to keep you out." That voice did nothing to assuage Rene's need to meet the man behind it.
"But you're the one who invited me," Rene insisted.
"I had to follow the music. To meet the man who made me hard through the notes of his guitar." The man had rendered him absolutely poetic.
"Are you a lyricist?"
"Not at all." He was frustrated, talking to the shadows around the bulk of the security guard. He wasn't used to having barriers put in his way like this.
"I'm sorry. I have to go. Dev? Is the car ready?"
"Yes, sir."
And then the shadow was gone, the bouncer following. They disappeared down the dark hall.
Rene growled a little, actual sound coming from him. He was not a man who didn't get his way. In fact, most people went out of their way to be with him, to give him what he desired.
He wasn't stymied for long, though. With a smile on his lips and a hard-on that still hadn't quit, he made his way back to the bar to begin his inquiries. He would find out who this magical musician was, and he would meet the man.
GAVIN WRAPPED himself in a huge sweater, an even bigger trench coat, and a knit cap. He wanted a cup of coffee and a BeaverTail, and that meant leaving the house.
"Silas? Are you ready?"
Dev's twin grinned at him, the jolly brother his constant companion during the day. "I am. I heard last night went well."
"Very. Yes. Thanks."
"Dev mentioned an admirer?"
"Some guy. Pretty, but…." But he didn't interact with fans. Or people. Just Dev and Silas. "You know."
Silas stepped up and wrapped him in a warm hug. "I know."
Five years since the brothers had rescued him. Five years since he'd hired them from the police department to be his own private security. Now they were his friends, his family, his defenders. Nobody got close anymore. Not one single person.
It hadn't been a concern in ages anyway. Nobody knew who he was anymore. No one bothered him here at the house or the few times he ventured out. That someone had wanted closer access last night made him squirm.
"Take me out to get coffee?" He was being brave going to get his java on his own instead of making do with the fancy machine in his kitchen.
"You got it, honey." Silas was always armed, always ready, just like Dev. They were one of the few reasons he ever felt safe. The main reason, really.
Gavin kissed Silas's cheek, and they headed to the unremarkable black SUV in the garage. This was his life now, hiding in the shadows, never being alone. It was the only way he felt safe, but he had to admit that sometimes he was lonely, despite the twins being there. Sometimes he yearned for more, for someone else in his life.
Of course, whenever he stepped out alone, he panicked, so… it was a shitty catch-22.
His phone rang, and the call display told him it was Rick, owner of the Painted Dog, where he'd played last night.
Gavin answered with a smile. Okay, so he had a few acquaintances he knew well enough to speak to on the phone now and then. Hell, he'd learned that the Painted Dog had a stage by being a very occasional patron there. The place wasn't busy on weekday nights near closing time. "Hey, man. How goes?"
"Hi, Gav. Good, good. You wowed them last night, as usual."
"Thanks. I try. Seriously, thanks for giving me a place to play." He used to play arena shows, now he hid behind his ink in a tiny bar. He needed to play, though, and this gave him an outlet.
"Hey, you make the place legit." Rick cleared his throat. "One of last night's patrons really wanted to meet you. I told him I'd let you know, so now I have."
"Thanks." He didn't meet people. "Do you know him?"
"He's a regular, and I did a bit of research this morning. He's got a reputation as a playboy, but I can't find much to actually substantiate that."
"Ah. Well, that's nice." Playboy? No way. At all. He didn't need that kind of energy in his life.
Rick chuckled. "I told him you wouldn't be interested. Then he said something weird. 'Tell him I know that the safeword is sacred.' Or something like that."
"I have to go." He ended the call, his entire body flushed with sweat all of a sudden. Did this guy know him? He didn't understand. How could this guy know? He didn't look like Fallon Davies anymore. He'd gone back to his real name, his real hair color. He stayed out of the public eye. Hell, he stayed out of the public for the most part.
"What's the matter?" Silas asked immediately, suddenly on high alert.
"I want to go through the drive-through. I want to go home." He was too exposed here, despite the dark tint on the bulletproof windows.
Silas growled. "Who do I need to kill?"
"The man from last night. He mentioned a safeword to Rick." He met Silas's eyes. "Dev ran him off yesterday."
"A safeword? How did he know you're a sub? Who the hell would know that?" Silas pulled into the drive-through of the Timmies because it was closer than Second Cup or Starbucks.
"I don't know…." He curled away from the light when the window opened.
Silas placed their order, then pulled up to pay. "Breathe, Gav. You're safe."
"I know." He was. He lived with two of the biggest, baddest sons of bitches on earth, who loved him like a brother and took care of him. He didn't have to lie to them or hide from them. Hell, they encouraged full disclosure so that they could protect him more fully.
Silas paid for their coffees, then passed his over to him. "I got you the biggest one. Figured you need it."
"Thank you. I do." He could smell hazelnut and cream, and it soothed him.
"You still want something to eat while we're out? Or you want to just get home?"
"I want to go home." He wouldn't feel safe until he was back in his own space with its fences and dense foliage and locked doors.
"Whatever you want, boss." Silas gave him a sad look that said Silas wished things were different for him.
"I want a BeaverTail. That's all I wanted, you know?" He was whining. Was he whining? He was pretty sure he was whining.
"So let's go get you a BeaverTail." Silas said it like it was so easy.
"I've got you. I swear." Silas pulled up to the road. "Come on, fried dough, cinnamon, lemon…."
"Uhn. It's been so long." He could almost taste it, though. In fact, he was salivating.
"With my life." And that was the truth.
"Then let's get you that BeaverTail." Silas put on the indicator, then turned the SUV left, heading toward the market.
"Okay. Thank you." He reached out and touched Silas's arm. Silas and his twin continued to save him every day—often, like just now, from himself.
"Hey, you know I've got your back."
"I do. I know. I just…. I hate this," he admitted. He'd been doing pretty well lately too, and he hated that all it took was one little thing to twist him up again and make him nervy.
"I'm going to call Rick and get this guy's name. We'll investigate him thoroughly." And that right there was why Silas and Dev made him feel safe.
"Thank you. Please. Make him leave me alone." Was that really too much to ask?
"You got it, boss. I'm on it."
The words relaxed him, eased him. "Thanks, Silas. I'm sure he's a very nice man, but…."
But he wasn't ready for anyone, nice or not. It was possible he never would be.


text:
Why Nobody Ever Wins the Car at the Mall – A Case Study in Data Protection & Shady Marketing Practices
Posted on June 24, 2018 June 24, 2018 by wholesumagency
The following is from "The Hustle" who not only put out a great daily newsletter via email but also built this great study/investigation on what happens to personal data once we give it up, what kind of things make people give up their data, and the implications of such sharing. Enjoy!
We had a hunch that no one ever actually wins those mall car giveaways. But we had no idea how deep the rabbit hole went…
BY ZACHARY CROCKETT
In the middle of the Great Mall in Milpitas, California, a shiny, brand-new, blue 2018 Acura TLX (MSRP $33k) sits ready for the taking.
Surrounding the vehicle are 10 screens, where mall-goers can enter their personal data — full name, phone number, income, credit card type — for a chance to win the "grand prize." In the course of an hour on a Wednesday afternoon, 22 hopefuls fill out the digital form.
In a few weeks' time, they'll all be bombarded with the same scammy call: "Congratulations! Your name was recently drawn! All you have to do is come down to [X] and attend a presentation to claim your prize."
Who runs these sweepstakes? What do they do with our information? Does anyone ever win the damn car?
These seemingly simple questions led me down a vortex of shady marketing tactics, timeshare salesmen, and third-party resale markets — and exposed the dirty underbelly of how our information is brokered.
The company behind the curtain
First thing's first: the mall isn't behind these giveaways; they merely rent out the advertising space (for around $1.5k per day). And as it turns out, their partnership standards are pretty low.
After 4 calls to the Great Mall, a receptionist finally relinquishes the name of the firm running the car giveaway: Great Destinations — a timeshare vacation rental company based in Orange County, California.
A giveaway at the Great Mall in Silicon Valley strongly implies that the prize is a 2018 Acura TLX (The Hustle)
I call them up and a guy named Patrick answers. When I ask for the odds of winning the car, he turns hostile:
Patrick: "What's your name?"
Zack: "Zack."
Patrick: "Last name?"
Zack: "Why do you need my last—"
Patrick: "Last name, or I can't do anything for you."
Zack: "Okay, but—"
Patrick: "Don't play me, okay? Thank you!" [Abruptly hangs up]
So, I pass the torch to our managing editor, Lindsey, who sets up an untraceable number and calls under the alias "Katie Sanders."
Patrick collects a rolodex of her (fake) data — full name, age, marital status — then tells her she has to be at least 28 to enter the drawing. "Tell your parent to call me," he says, and hangs up.
Her "dad" (our writer, Conor) gives it one last try. Patrick tells Conor that in order to win the car, he has to go to a local Great Destinations office and attend a 90-minute timeshare presentation. For good measure, he offers to throw in a "free vacation package to Disneyland."
"But what about the car? Does anyone ever win it?" asks Conor.
"Not yet!" replies Patrick. "You're probably the one! We're waiting for you!"
The fine print tells a different story
In the legal disclaimer of the car giveaway, there's a statement that contradicts Patrick's sales bravado: "Any vehicle, boat or other representation displayed are examples only," reads the terms of service on a car giveaway.
The car is a loaner from local dealer, Acura of Fremont — and despite what the sweepstakes' marketing may suggest, it's not up for grabs. (We called the dealer and they confirmed that the vehicle on display isn't part of the giveaway at all.)
What you're really signing up for is the opportunity to win an opportunity to possibly win a small amount of taxable cash.
Here's what actually happens: 1) You enter the sweepstakes; 2) You have to attend a 90-minute timeshare presentation; 3) You get a scratch-off lotto ticket; 4) If you're a "grand prize winner," you get to play a game for a chance to win $100k.
The "game" is that the finalist gets to open 4 "mystery envelopes" with random amounts of cash. Last year's two "big winners" walked away with checks for $575 and $700 — about enough to buy one side view mirror for your Acura..
That's the absolute best-case scenario of entering one of these contests. Other aren't so lucky.
Days after entering to win the car, Maggie Nicholson received a call informing her that her name was drawn. After sitting through a 2-hour timeshare presentation with Boiler Room-like sales tactics, she was told there was no car — but she was eligible for a vacation package.
"[When I declined], they proceeded to tell our 12 year old daughter, 'I guess your parents won't take you on your dream vacation!'" she says. Then, they handed over her "prize:" a $25 restaurant voucher that required a $100 minimum spend to redeem.
In short, nobody wins the car in these telemarketing schemes.
There are other types of car giveaways run by more legitimate parties (charity raffles, event promotions) that do deliver the goods — but if you win, you're liable to pay a hefty gift tax.
In one instance, a man who won a 2015 Tesla Model S at a casino (list price $92k) would have had to pony up $38k in fees to take it home, and ended up selling it instead. He walked away with less than $25k on a $92k vehicle.
It's a marketing gimmick to get your information
To enter a car contest at the mall, you have to enter a sweeping range of your personal information:
Where you like to go on vacation
Combined annual income
What type of credit card(s) you own
Only after you enter all of this are you presented with the terms — and buried at the very end of them, in small print, is something rather scary:
Also in the fine print of a car giveaway: your data can be used for virtually any purpose by telemarketers
In simple terms: when you enter one of these contests, you're allowing telemarketers to not only use your data to make robocalls in perpetuity, but sell it and share it with any "subsidiaries" it chooses. Conveniently, it also renders void any "do not call" lists you might be on.
The information from these forms is collected en masse, entered into a large database, and delivered directly to the telemarketing company running the promotion (in this case, Great Destinations).
From there, telemarketing calls are placed and the data is split into two "piles:" those who express interest, and those who don't.
As an ex-telemarketer tells us, parties who express interest are hounded with up to 5-7 "follow-up" calls per week. The "repackaged" into a new data set and sold to anothertelemarketing company.
In essence, when you sign up for a car giveaway, your personal data is sucked into an neverending maelstrom of call lists which can be bounced around between data brokers and telemarketers for years.
The system is like quicksand: once you're in, it's incredibly challenging to dislodge yourself.
The business of "free"
In today's digital economy, the practice of offering a free service, product, or opportunity in exchange for data is widespread.
Companies like Facebook and Google give free access to their platforms in exchange for a wide, sweeping range of your personal information, which they analyze and use to sell targeted ads. Other free services, like Unroll.me, sell your anonymized data to third-parties outright.
Attempts to remove information after entering a car contest just result in the telemarketing company requesting even more information from you (Via BBB)
In the words of Lee Tien, a lawyer with the Electronic Frontier Foundation, "If you're not paying for it with money, you're paying for it with data."
But this is starting to change. Amid governmental and consumer concerns, Facebook finally provided clear instructions on how to download and delete data; the EU's recent GDPR ruling gives individuals more control over their data privacy.
The same can't be said for the proprietors of car giveaways.
Next time you see that shiny new sedan at the mall, just remember one thing: if an opportunity or service is free, the product is probably you.
9 lesser-known tips to improve your ranking in search results [curated article]
The Introduction of Unporn: Safe images for sexual subjects.


text:
Q: How can I get the installed YUM packages with Ansible? I am trying to get all the installed YUM packages on an RHEL machine. I can easily get it through using shell commands which is not idempotent and would like to use the YUM command instead.
The shell command works fine:
- name: yum list packages
  shell: yum list installed > build_server_info.config

But when I try to use the YUM command, it just executes, but it does not give any results:
- name: yum_command
  action: yum list=${pkg} list=available

A: Since Ansible 2.5, you can also use the package_facts module: it will gather the list of installed packages as Ansible facts.
Example from the CPU:
- name: get the rpm package facts
  package_facts:
    manager: rpm

- name: show them
  debug: var=ansible_facts.packages

A:
I can easily get it through using shell commands which is not idempotent

You can't really talk about idempotence, when you are querying the current state of a machine.
"Idempontent" means that the task will ensure the machine is in the desired state no matter how many times you run a certain task.
When you query current state, you don't describe the desired state. No matter what you do, what method you use, the term "idempotent" is just not applicable.

Regarding your example, which does not give you results - you have repeated twice the same argument list and the task should fail (it doesn't, which looks like an Ansible quirk).
To get a list of installed packages, you should use:
- name: yum_command
  yum:
    list=installed
  register: yum_packages

- debug:
    var: yum_packages

It saves a list of dictionaries describing each package to a variable yum_packages.
You can then use a JSON Query Filter to get a single package (tar):
- debug: var=item
  with_items: "{{yum_packages|json_query(jsonquery)}}"
  vars:
    jsonquery: "results[?name=='tar']"

to get a result like this:
"item": {
    "arch": "x86_64",
    "epoch": "2",
    "name": "tar",
    "nevra": "2:tar-1.26-31.el7.x86_64",
    "release": "31.el7",
    "repo": "installed",
    "version": "1.26",
    "yumstate": "installed"
}

Or only its version:
- debug: var=item
  with_items: "{{yum_packages|json_query(jsonquery)}}"
  vars:
    jsonquery: "results[?name=='tar'].version"

"item": "1.26"

A: Well, the official Ansible documentation for the yum module describes list as:

"Various (non-idempotent) commands for usage with /usr/bin/ansible and not playbooks."

so you're going to be out of luck with finding an idempotent list invocation.
If you just want to suppress the changed output, set the changed_when parameter to False.
(Also, having the duplicate list parameter is suspicious.)

A: If your requirement is to check for only one package, and based on that you want to execute another task, you can use package_facts module as
- name: install docker community edition in rhel8
  hosts: localhost
  connection: local

  tasks:
   - name: Gather the rpm package facts
     package_facts:
       manager: auto

   - name: check if docker-ce is already installed
     debug:
       var: ansible_facts.packages['docker-ce']

   - name: using command module to install docker-ce
     command: yum install docker-ce --nobest -y
     when: "'docker-ce' not in ansible_facts.packages"
     register: install_res

   - name: whether docker is installed now
     debug:
       var: install_res

redpajama_set_name: RedPajamaStackExchange


text:
DUI with Speed Enhancement dismissed
A DUI with Speed Enhancement was dismissed in the court in West Covina. Our client, Ms. Smith, held a top secret security government clearance, and had a case pending in the Los Angeles Superior Court courthouse in West Covina. The case against her alleged a DUI with a .12% breath test, and the enhancement and allegation that she was speeding.
Discovery was requested, several times, and was not provided until the day of trial. The DA indicated that the CHP was not forthcoming with the items that were requested in a prompt manner. The judge threatened to dismiss the case if discovery was not provided.
The videotape from the patrol car showed that Ms. Smith was in fact not weaving as the officer had described. The CHP officer also indicated that she had been speeding, but was unable to provide maintenance or calibration documents showing that the speedometer pace was accurate as described.
DUI with Speed Enhancement dismissed on the day of trial.
The Judge in West Covina offered to Ms. Smith that she could avoid probation, which would have caused her top secret clearance to suffer, by doing jail time. The DA agreed to dismiss the DUI charge instead, as part of a plea bargain arrangement, which still required her to do community service.
This client was very happy with the result, and looked forward to resuming her life and intended career.
Previous PostSecond time DUI and probation violation, no jail time