text:
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.mongoQuery = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){

/**
 * Module dependencies.
 */

var ops = require('./ops');
var eql = require('mongo-eql');
var dot = require('dot-component');
var type = require('component-type');
var object = require('object-component');
var debug = require('debug')('mongo-query');

/**
 * Module exports.
 */

module.exports = exports = filter;
exports.ops = ops;

/**
 * Filters an `obj` by the given `query` for subdocuments.
 *
 * @return {Object|Boolean} false if no match, or matched subdocs
 * @api public
 */

function filter(obj, query){
  obj = obj || {};
  var ret = {};

  for (var key in query) {
    if (!query.hasOwnProperty(key)) continue;

    // search value
    var val = query[key];

    // split the key into prefix and suffix
    var keys = key.split('.');
    var target = obj;
    var prefix, search;
    var matches = [];

    walk_keys:
    for (var i = 0; i < keys.length; i++) {
      target = target[keys[i]];

      switch (type(target)) {
        case 'array':
          // if it's an array subdocument search we stop here
          prefix = keys.slice(0, i + 1).join('.');
          search = keys.slice(i + 1).join('.');

          debug('searching array "%s"', prefix);

          // we special case operators that don't walk the array
          if (val.$size && !search.length) {
            return compare(val, target);
          }

          // walk subdocs
          var subset = ret[prefix] || target;

          for (var ii = 0; ii < subset.length; ii++) {
            if (search.length) {
              var q = {};
              q[search] = val;
              if ('object' == type(subset[ii])) {
                debug('attempting subdoc search with query %j', q);
                if (filter(subset[ii], q)) {
                  // we ignore the ret value of filter
                  if (!ret[prefix] || !~ret[prefix].indexOf(subset[ii])) {
                    matches.push(subset[ii]);
                  }
                }
              }
            } else {
              debug('performing simple array item search');
              if (compare(val, subset[ii])) {
                if (!ret[prefix] || !~ret[prefix].indexOf(subset[ii])) {
                  matches.push(subset[ii]);
                }
              }
            }
          }

          if (matches.length) {
            ret[prefix] = ret[prefix] || [];
            ret[prefix].push.apply(ret[prefix], matches);
          }

          // we don't continue the key search
          break walk_keys;

        case 'undefined':
          // if we can't find the key
          return false;

        case 'object':
          if (null != keys[i + 1]) {
            continue;
          } else if (!compare(val, target)) {
            return false;
          }
          break;

        default:
          if (!compare(val, target)) return false;
      }
    }
  }

  return ret;
}

/**
 * Compares the given matcher with the document value.
 *
 * @param {Mixed} matcher
 * @param {Mixed} value
 * @api private
 */

function compare(matcher, val){
  if ('object' != type(matcher)) {
    return eql(matcher, val);
  }

  var keys = object.keys(matcher);
  if ('$' == keys[0][0]) {
    for (var i = 0; i < keys.length; i++) {
      // special case for sub-object matching
      if ('$elemMatch' == keys[i]) {
        return false !== filter(val, matcher.$elemMatch);
      } else {
        if (!ops[keys[i]](matcher[keys[i]], val)) return false;
      }
    }
    return true;
  } else {
    return eql(matcher, val);
  }
}

},{"./ops":12,"component-type":4,"debug":5,"dot-component":8,"mongo-eql":10,"object-component":11}],2:[function(require,module,exports){

/**
 * Module dependencies.
 */

var mods = require('./mods');
var filter = require('./filter');
var dot = require('dot-component');
var type = require('component-type');
var object = require('object-component');
var debug = require('debug')('mongo-query');

/**
 * Module exports.
 */

module.exports = exports = query;

/**
 * Export filter helper.
 */

exports.filter = filter;

/**
 * Export modifiers.
 */

exports.mods = mods;

/**
 * Execute a query.
 *
 * Options:
 *  - `strict` only modify if query matches
 *
 * @param {Object} object to alter
 * @param {Object} query to filter modifications by
 * @param {Object} update object
 * @param {Object} options
 */

function query(obj, query, update, opts){
  obj = obj || {};
  opts = opts || {};
  query = query || {};
  update = update || {};

  // strict mode
  var strict = !!opts.strict;

  var match;
  var log = [];

  if (object.length(query)) {
    match = filter(obj, query);
  }

  if (!strict || false !== match) {
    var keys = object.keys(update);
    var transactions = [];

    for (var i = 0, l = keys.length; i < l; i++) {
      if (mods[keys[i]]) {
        debug('found modifier "%s"', keys[i]);
        for (var key in update[keys[i]]) {
          var pos = key.indexOf('.$.');

          if (~pos) {
            var prefix = key.substr(0, pos);
            var suffix = key.substr(pos + 3);

            if (match[prefix]) {
              debug('executing "%s" %s on first match within "%s"', key, keys[i], prefix);
              var fn = mods[keys[i]](match[prefix][0], suffix, update[keys[i]][key]);
              if (fn) {
                // produce a key name replacing $ with the actual index
                // TODO: this is unnecessarily expensive
                var index = dot.get(obj, prefix).indexOf(match[prefix][0]);
                fn.key = prefix + '.' + index + '.' + suffix;
                fn.op = keys[i];
                transactions.push(fn);
              }
            } else {
              debug('ignoring "%s" %s - no matches within "%s"', key, keys[i], prefix);
            }
          } else {
            var fn = mods[keys[i]](obj, key, update[keys[i]][key]);
            if (fn) {
              fn.key = key;
              fn.op = keys[i];
              transactions.push(fn);
            }
          }
        }
      } else {
        debug('skipping unknown modifier "%s"', keys[i]);
      }
    }

    if (transactions.length) {
      // if we got here error free we process all transactions
      for (var i = 0; i < transactions.length; i++) {
        var fn = transactions[i];
        var val = fn();
        log.push({ op: fn.op, key: fn.key, value: val });
      }
    }
  } else {
    debug('no matches for query %j', query);
  }

  return log;
}

},{"./filter":1,"./mods":3,"component-type":4,"debug":5,"dot-component":8,"object-component":11}],3:[function(require,module,exports){

/**
 * Module dependencies.
 */

var eql = require('mongo-eql');
var dot = require('dot-component');
var type = require('component-type');
var keys = require('object-component').keys;
var debug = require('debug')('mongo-query');

/**
 * Performs a `$set`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {String} value to set
 * @return {Function} transaction (unless noop)
 */

exports.$set = function $set(obj, path, val){
  var key = path.split('.').pop();
  obj = dot.parent(obj, path, true);

  switch (type(obj)) {
    case 'object':
      if (!eql(obj[key], val)) {
        return function(){
          obj[key] = val;
          return val;
        };
      }
      break;

    case 'array':
      if (numeric(key)) {
        if (!eql(obj[key], val)) {
          return function(){
            obj[key] = val;
            return val;
          };
        }
      } else {
        throw new Error('can\'t append to array using string field name [' + key + ']');
      }
      break;

    default:
      throw new Error('$set only supports object not ' + type(obj));
  }
};

/**
 * Performs an `$unset`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {String} value to set
 * @return {Function} transaction (unless noop)
 */

exports.$unset = function $unset(obj, path){
  var key = path.split('.').pop();
  obj = dot.parent(obj, path);

  switch (type(obj)) {
    case 'array':
    case 'object':
      if (obj.hasOwnProperty(key)) {
        return function(){
          // reminder: `delete arr[1]` === `delete arr['1']` [!]
          delete obj[key];
        };
      } else {
        // we fail silently
        debug('ignoring unset of inexisting key');
      }
  }
};

/**
 * Performs a `$rename`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {String} value to set
 * @return {Function} transaction (unless noop)
 */

exports.$rename = function $rename(obj, path, newKey){
  // target = source
  if (path == newKey) {
    throw new Error('$rename source must differ from target');
  }

  // target is parent of source
  if (0 === path.indexOf(newKey + '.')) {
    throw new Error('$rename target may not be a parent of source');
  }

  var p = dot.parent(obj, path);
  var t = type(p);

  if ('object' == t) {
    var key = path.split('.').pop();

    if (p.hasOwnProperty(key)) {
      return function(){
        var val = p[key];
        delete p[key];

        // target does initialize the path
        var newp = dot.parent(obj, newKey, true);

        // and also fails silently upon type mismatch
        if ('object' == type(newp)) {
          newp[newKey.split('.').pop()] = val;
        } else {
          debug('invalid $rename target path type');
        }

        // returns the name of the new key
        return newKey;
      };
    } else {
      debug('ignoring rename from inexisting source');
    }
  } else if ('undefined' != t) {
    throw new Error('$rename source field invalid');
  }
};

/**
 * Performs an `$inc`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {String} value to set
 * @return {Function} transaction (unless noop)
 */

exports.$inc = function $inc(obj, path, inc){
  if ('number' != type(inc)) {
    throw new Error('Modifier $inc allowed for numbers only');
  }

  obj = dot.parent(obj, path, true);
  var key = path.split('.').pop();

  switch (type(obj)) {
    case 'array':
    case 'object':
      if (obj.hasOwnProperty(key)) {
        if ('number' != type(obj[key])) {
          throw new Error('Cannot apply $inc modifier to non-number');
        }

        return function(){
          obj[key] += inc;
          return inc;
        };
      } else if('object' == type(obj) || numeric(key)){
        return function(){
          obj[key] = inc;
          return inc;
        };
      } else {
        throw new Error('can\'t append to array using string field name [' + key + ']');
      }
      break;

    default:
      throw new Error('Cannot apply $inc modifier to non-number');
  }
};

/**
 * Performs an `$pop`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {String} value to set
 * @return {Function} transaction (unless noop)
 */

exports.$pop = function $pop(obj, path, val){
  obj = dot.parent(obj, path);
  var key = path.split('.').pop();

  // we make sure the array is not just the parent of the main key
  switch (type(obj)) {
    case 'array':
    case 'object':
      if (obj.hasOwnProperty(key)) {
        switch (type(obj[key])) {
          case 'array':
            if (obj[key].length) {
              return function(){
                if (-1 == val) {
                  return obj[key].shift();
                } else {
                  // mongodb allows any value to pop
                  return obj[key].pop();
                }
              };
            }
            break;

          case 'undefined':
            debug('ignoring pop to inexisting key');
            break;

          default:
            throw new Error('Cannot apply $pop modifier to non-array');
        }
      } else {
        debug('ignoring pop to inexisting key');
      }
      break;

    case 'undefined':
      debug('ignoring pop to inexisting key');
      break;
  }
};

/**
 * Performs a `$push`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {Object} value to push
 * @return {Function} transaction (unless noop)
 */

exports.$push = function $push(obj, path, val){
  obj = dot.parent(obj, path, true);
  var key = path.split('.').pop();

  switch (type(obj)) {
    case 'object':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          return function(){
            obj[key].push(val);
            return val;
          };
        } else {
          throw new Error('Cannot apply $push/$pushAll modifier to non-array');
        }
      } else {
        return function(){
          obj[key] = [val];
          return val;
        };
      }
      break;

    case 'array':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          return function(){
            obj[key].push(val);
            return val;
          };
        } else {
          throw new Error('Cannot apply $push/$pushAll modifier to non-array');
        }
      } else if (numeric(key)) {
        return function(){
          obj[key] = [val];
          return val;
        };
      } else {
        throw new Error('can\'t append to array using string field name [' + key + ']');
      }
      break;
  }
};

/**
 * Performs a `$pushAll`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {Array} values to push
 * @return {Function} transaction (unless noop)
 */

exports.$pushAll = function $pushAll(obj, path, val){
  if ('array' != type(val)) {
    throw new Error('Modifier $pushAll/pullAll allowed for arrays only');
  }

  obj = dot.parent(obj, path, true);
  var key = path.split('.').pop();

  switch (type(obj)) {
    case 'object':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          return function(){
            obj[key].push.apply(obj[key], val);
            return val;
          };
        } else {
          throw new Error('Cannot apply $push/$pushAll modifier to non-array');
        }
      } else {
        return function(){
          obj[key] = val;
          return val;
        };
      }
      break;

    case 'array':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          return function(){
            obj[key].push.apply(obj[key], val);
            return val;
          };
        } else {
          throw new Error('Cannot apply $push/$pushAll modifier to non-array');
        }
      } else if (numeric(key)) {
        return function(){
          obj[key] = val;
          return val;
        };
      } else {
        throw new Error('can\'t append to array using string field name [' + key + ']');
      }
      break;
  }
};

/**
 * Performs a `$pull`.
 */

exports.$pull = function $pull(obj, path, val){
  obj = dot.parent(obj, path, true);
  var key = path.split('.').pop();
  var t = type(obj);

  switch (t) {
    case 'object':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          var pulled = [];
          var splice = pull(obj[key], [val], pulled);
          if (pulled.length) {
            return function(){
              splice();
              return pulled;
            };
          }
        } else {
          throw new Error('Cannot apply $pull/$pullAll modifier to non-array');
        }
      }
      break;

    case 'array':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          var pulled = [];
          var splice = pull(obj[key], [val], pulled);
          if (pulled.length) {
            return function(){
              splice();
              return pulled;
            };
          }
        } else {
          throw new Error('Cannot apply $pull/$pullAll modifier to non-array');
        }
      } else {
        debug('ignoring pull to non array');
      }
      break;

    default:
      if ('undefined' != t) {
        throw new Error('LEFT_SUBFIELD only supports Object: hello not: ' + t);
      }
  }
};

/**
 * Performs a `$pullAll`.
 */

exports.$pullAll = function $pullAll(obj, path, val){
  if ('array' != type(val)) {
    throw new Error('Modifier $pushAll/pullAll allowed for arrays only');
  }

  obj = dot.parent(obj, path, true);
  var key = path.split('.').pop();
  var t = type(obj);

  switch (t) {
    case 'object':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          var pulled = [];
          var splice = pull(obj[key], val, pulled);
          if (pulled.length) {
            return function(){
              splice();
              return pulled;
            };
          }
        } else {
          throw new Error('Cannot apply $pull/$pullAll modifier to non-array');
        }
      }
      break;

    case 'array':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          var pulled = [];
          var splice = pull(obj[key], val, pulled);
          if (pulled.length) {
            return function(){
              splice();
              return pulled;
            };
          }
        } else {
          throw new Error('Cannot apply $pull/$pullAll modifier to non-array');
        }
      } else {
        debug('ignoring pull to non array');
      }
      break;

    default:
      if ('undefined' != t) {
        throw new Error('LEFT_SUBFIELD only supports Object: hello not: ' + t);
      }
  }
};

/**
 * Performs a `$addToSet`.
 *
 * @param {Object} object to modify
 * @param {String} path to alter
 * @param {Object} value to push
 * @param {Boolean} internal, true if recursing
 * @return {Function} transaction (unless noop)
 */

exports.$addToSet = function $addToSet(obj, path, val, recursing){
  if (!recursing && 'array' == type(val.$each)) {
    var fns = [];
    for (var i = 0, l = val.$each.length; i < l; i++) {
      var fn = $addToSet(obj, path, val.$each[i], true);
      if (fn) fns.push(fn);
    }
    if (fns.length) {
      return function(){
        var values = [];
        for (var i = 0; i < fns.length; i++) values.push(fns[i]());
        return values;
      };
    } else {
      return;
    }
  }

  obj = dot.parent(obj, path, true);
  var key = path.split('.').pop();

  switch (type(obj)) {
    case 'object':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          if (!has(obj[key], val)) {
            return function(){
              obj[key].push(val);
              return val;
            };
          }
        } else {
          throw new Error('Cannot apply $addToSet modifier to non-array');
        }
      } else {
        return function(){
          obj[key] = [val];
          return val;
        };
      }
      break;

    case 'array':
      if (obj.hasOwnProperty(key)) {
        if ('array' == type(obj[key])) {
          if (!has(obj[key], val)) {
            return function(){
              obj[key].push(val);
              return val;
            };
          }
        } else {
          throw new Error('Cannot apply $addToSet modifier to non-array');
        }
      } else if (numeric(key)) {
        return function(){
          obj[key] = [val];
          return val;
        };
      } else {
        throw new Error('can\'t append to array using string field name [' + key + ']');
      }
      break;
  }
};

/**
 * Helper for determining if an array has the given value.
 *
 * @param {Array} array
 * @param {Object} value to check
 * @return {Boolean}
 */

function has(array, val){
  for (var i = 0, l = array.length; i < l; i++) {
    if (eql(val, array[i])) return true;
  }
  return false;
}

/**
 * Array#filter function generator for `$pull`/`$pullAll` operations.
 *
 * @param {Array} array of values to match
 * @param {Array} array to populate with results
 * @return {Function} that splices the array
 */

function pull(arr, vals, pulled){
  var indexes = [];

  for (var a = 0; a < arr.length; a++) {
    var val = arr[a];

    for (var i = 0; i < vals.length; i++) {
      var matcher = vals[i];
      if ('object' == type(matcher)) {
        // we only are only interested in obj <-> obj comparisons
        if ('object' == type(val)) {
          var match = false;

          if (keys(matcher).length) {
            for (var i in matcher) {
              if (matcher.hasOwnProperty(i)) {
                // we need at least one matching key to pull
                if (eql(matcher[i], val[i])) {
                  match = true;
                } else {
                  // if a single key doesn't match we move on
                  match = false;
                  break;
                }
              }
            }
          } else if (!keys(val).length) {
            // pull `{}` matches [{}]
            match = true;
          }

          if (match) {
            indexes.push(a);
            pulled.push(val);
            continue;
          }
        } else {
          debug('ignoring pull match against object');
        }
      } else {
        if (eql(matcher, val)) {
          indexes.push(a);
          pulled.push(val);
          continue;
        }
      }
    }
  }

  return function(){
    for (var i = 0; i < indexes.length; i++) {
      var index = indexes[i];
      arr.splice(index - i, 1);
    }
  };
}

/**
 * Helper to determine if a value is numeric.
 *
 * @param {String|Number} value
 * @return {Boolean} true if numeric
 * @api private
 */

function numeric(val){
  return 'number' == type(val) || Number(val) == val;
}

},{"component-type":4,"debug":5,"dot-component":8,"mongo-eql":10,"object-component":11}],4:[function(require,module,exports){
/**
 * toString ref.
 */

var toString = Object.prototype.toString;

/**
 * Return the type of `val`.
 *
 * @param {Mixed} val
 * @return {String}
 * @api public
 */

module.exports = function(val){
  switch (toString.call(val)) {
    case '[object Date]': return 'date';
    case '[object RegExp]': return 'regexp';
    case '[object Arguments]': return 'arguments';
    case '[object Array]': return 'array';
    case '[object Error]': return 'error';
  }

  if (val === null) return 'null';
  if (val === undefined) return 'undefined';
  if (val !== val) return 'nan';
  if (val && val.nodeType === 1) return 'element';

  val = val.valueOf
    ? val.valueOf()
    : Object.prototype.valueOf.apply(val)

  return typeof val;
};

},{}],5:[function(require,module,exports){

/**
 * This is the web browser implementation of `debug()`.
 *
 * Expose `debug()` as the module.
 */

exports = module.exports = require('./debug');
exports.log = log;
exports.formatArgs = formatArgs;
exports.save = save;
exports.load = load;
exports.useColors = useColors;

/**
 * Use chrome.storage.local if we are in an app
 */

var storage;

if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined')
  storage = chrome.storage.local;
else
  storage = localstorage();

/**
 * Colors.
 */

exports.colors = [
  'lightseagreen',
  'forestgreen',
  'goldenrod',
  'dodgerblue',
  'darkorchid',
  'crimson'
];

/**
 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
 * and the Firebug extension (any Firefox version) are known
 * to support "%c" CSS customizations.
 *
 * TODO: add a `localStorage` variable to explicitly enable/disable colors
 */

function useColors() {
  // is webkit? http://stackoverflow.com/a/16459606/376773
  return ('WebkitAppearance' in document.documentElement.style) ||
    // is firebug? http://stackoverflow.com/a/398120/376773
    (window.console && (console.firebug || (console.exception && console.table))) ||
    // is firefox >= v31?
    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
    (navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31);
}

/**
 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
 */

exports.formatters.j = function(v) {
  return JSON.stringify(v);
};

/**
 * Colorize log arguments if enabled.
 *
 * @api public
 */

function formatArgs() {
  var args = arguments;
  var useColors = this.useColors;

  args[0] = (useColors ? '%c' : '')
    + this.namespace
    + (useColors ? ' %c' : ' ')
    + args[0]
    + (useColors ? '%c ' : ' ')
    + '+' + exports.humanize(this.diff);

  if (!useColors) return args;

  var c = 'color: ' + this.color;
  args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));

  // the final "%c" is somewhat tricky, because there could be other
  // arguments passed either before or after the %c, so we need to
  // figure out the correct index to insert the CSS into
  var index = 0;
  var lastC = 0;
  args[0].replace(/%[a-z%]/g, function(match) {
    if ('%%' === match) return;
    index++;
    if ('%c' === match) {
      // we only are interested in the *last* %c
      // (the user may have provided their own)
      lastC = index;
    }
  });

  args.splice(lastC, 0, c);
  return args;
}

/**
 * Invokes `console.log()` when available.
 * No-op when `console.log` is not a "function".
 *
 * @api public
 */

function log() {
  // this hackery is required for IE8/9, where
  // the `console.log` function doesn't have 'apply'
  return 'object' === typeof console
    && console.log
    && Function.prototype.apply.call(console.log, console, arguments);
}

/**
 * Save `namespaces`.
 *
 * @param {String} namespaces
 * @api private
 */

function save(namespaces) {
  try {
    if (null == namespaces) {
      storage.removeItem('debug');
    } else {
      storage.debug = namespaces;
    }
  } catch(e) {}
}

/**
 * Load `namespaces`.
 *
 * @return {String} returns the previously persisted debug modes
 * @api private
 */

function load() {
  var r;
  try {
    r = storage.debug;
  } catch(e) {}
  return r;
}

/**
 * Enable namespaces listed in `localStorage.debug` initially.
 */

exports.enable(load());

/**
 * Localstorage attempts to return the localstorage.
 *
 * This is necessary because safari throws
 * when a user disables cookies/localstorage
 * and you attempt to access it.
 *
 * @return {LocalStorage}
 * @api private
 */

function localstorage(){
  try {
    return window.localStorage;
  } catch (e) {}
}

},{"./debug":6}],6:[function(require,module,exports){

/**
 * This is the common logic for both the Node.js and web browser
 * implementations of `debug()`.
 *
 * Expose `debug()` as the module.
 */

exports = module.exports = debug;
exports.coerce = coerce;
exports.disable = disable;
exports.enable = enable;
exports.enabled = enabled;
exports.humanize = require('ms');

/**
 * The currently active debug mode names, and names to skip.
 */

exports.names = [];
exports.skips = [];

/**
 * Map of special "%n" handling functions, for the debug "format" argument.
 *
 * Valid key names are a single, lowercased letter, i.e. "n".
 */

exports.formatters = {};

/**
 * Previously assigned color.
 */

var prevColor = 0;

/**
 * Previous log timestamp.
 */

var prevTime;

/**
 * Select a color.
 *
 * @return {Number}
 * @api private
 */

function selectColor() {
  return exports.colors[prevColor++ % exports.colors.length];
}

/**
 * Create a debugger with the given `namespace`.
 *
 * @param {String} namespace
 * @return {Function}
 * @api public
 */

function debug(namespace) {

  // define the `disabled` version
  function disabled() {
  }
  disabled.enabled = false;

  // define the `enabled` version
  function enabled() {

    var self = enabled;

    // set `diff` timestamp
    var curr = +new Date();
    var ms = curr - (prevTime || curr);
    self.diff = ms;
    self.prev = prevTime;
    self.curr = curr;
    prevTime = curr;

    // add the `color` if not set
    if (null == self.useColors) self.useColors = exports.useColors();
    if (null == self.color && self.useColors) self.color = selectColor();

    var args = Array.prototype.slice.call(arguments);

    args[0] = exports.coerce(args[0]);

    if ('string' !== typeof args[0]) {
      // anything else let's inspect with %o
      args = ['%o'].concat(args);
    }

    // apply any `formatters` transformations
    var index = 0;
    args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {
      // if we encounter an escaped % then don't increase the array index
      if (match === '%%') return match;
      index++;
      var formatter = exports.formatters[format];
      if ('function' === typeof formatter) {
        var val = args[index];
        match = formatter.call(self, val);

        // now we need to remove `args[index]` since it's inlined in the `format`
        args.splice(index, 1);
        index--;
      }
      return match;
    });

    if ('function' === typeof exports.formatArgs) {
      args = exports.formatArgs.apply(self, args);
    }
    var logFn = enabled.log || exports.log || console.log.bind(console);
    logFn.apply(self, args);
  }
  enabled.enabled = true;

  var fn = exports.enabled(namespace) ? enabled : disabled;

  fn.namespace = namespace;

  return fn;
}

/**
 * Enables a debug mode by namespaces. This can include modes
 * separated by a colon and wildcards.
 *
 * @param {String} namespaces
 * @api public
 */

function enable(namespaces) {
  exports.save(namespaces);

  var split = (namespaces || '').split(/[\s,]+/);
  var len = split.length;

  for (var i = 0; i < len; i++) {
    if (!split[i]) continue; // ignore empty strings
    namespaces = split[i].replace(/\*/g, '.*?');
    if (namespaces[0] === '-') {
      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
    } else {
      exports.names.push(new RegExp('^' + namespaces + '$'));
    }
  }
}

/**
 * Disable debug output.
 *
 * @api public
 */

function disable() {
  exports.enable('');
}

/**
 * Returns true if the given mode name is enabled, false otherwise.
 *
 * @param {String} name
 * @return {Boolean}
 * @api public
 */

function enabled(name) {
  var i, len;
  for (i = 0, len = exports.skips.length; i < len; i++) {
    if (exports.skips[i].test(name)) {
      return false;
    }
  }
  for (i = 0, len = exports.names.length; i < len; i++) {
    if (exports.names[i].test(name)) {
      return true;
    }
  }
  return false;
}

/**
 * Coerce `val`.
 *
 * @param {Mixed} val
 * @return {Mixed}
 * @api private
 */

function coerce(val) {
  if (val instanceof Error) return val.stack || val.message;
  return val;
}

},{"ms":7}],7:[function(require,module,exports){
/**
 * Helpers.
 */

var s = 1000;
var m = s * 60;
var h = m * 60;
var d = h * 24;
var y = d * 365.25;

/**
 * Parse or format the given `val`.
 *
 * Options:
 *
 *  - `long` verbose formatting [false]
 *
 * @param {String|Number} val
 * @param {Object} options
 * @return {String|Number}
 * @api public
 */

module.exports = function(val, options){
  options = options || {};
  if ('string' == typeof val) return parse(val);
  return options.long
    ? long(val)
    : short(val);
};

/**
 * Parse the given `str` and return milliseconds.
 *
 * @param {String} str
 * @return {Number}
 * @api private
 */

function parse(str) {
  var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);
  if (!match) return;
  var n = parseFloat(match[1]);
  var type = (match[2] || 'ms').toLowerCase();
  switch (type) {
    case 'years':
    case 'year':
    case 'yrs':
    case 'yr':
    case 'y':
      return n * y;
    case 'days':
    case 'day':
    case 'd':
      return n * d;
    case 'hours':
    case 'hour':
    case 'hrs':
    case 'hr':
    case 'h':
      return n * h;
    case 'minutes':
    case 'minute':
    case 'mins':
    case 'min':
    case 'm':
      return n * m;
    case 'seconds':
    case 'second':
    case 'secs':
    case 'sec':
    case 's':
      return n * s;
    case 'milliseconds':
    case 'millisecond':
    case 'msecs':
    case 'msec':
    case 'ms':
      return n;
  }
}

/**
 * Short format for `ms`.
 *
 * @param {Number} ms
 * @return {String}
 * @api private
 */

function short(ms) {
  if (ms >= d) return Math.round(ms / d) + 'd';
  if (ms >= h) return Math.round(ms / h) + 'h';
  if (ms >= m) return Math.round(ms / m) + 'm';
  if (ms >= s) return Math.round(ms / s) + 's';
  return ms + 'ms';
}

/**
 * Long format for `ms`.
 *
 * @param {Number} ms
 * @return {String}
 * @api private
 */

function long(ms) {
  return plural(ms, d, 'day')
    || plural(ms, h, 'hour')
    || plural(ms, m, 'minute')
    || plural(ms, s, 'second')
    || ms + ' ms';
}

/**
 * Pluralization helper.
 */

function plural(ms, n, name) {
  if (ms < n) return;
  if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;
  return Math.ceil(ms / n) + ' ' + name + 's';
}

},{}],8:[function(require,module,exports){

/**
 * Module dependencies.
 */

var type = require('type-component');

/**
 * Gets a certain `path` from the `obj`.
 *
 * @param {Object} target
 * @param {String} key
 * @return {Object} found object, or `undefined
 * @api public
 */

exports.get = function(obj, path){
  if (~path.indexOf('.')) {
    var par = parent(obj, path);
    var mainKey = path.split('.').pop();
    var t = type(par);
    if ('object' == t || 'array' == t) return par[mainKey];
  } else {
    return obj[path];
  }
};

/**
 * Sets the given `path` to `val` in `obj`.
 *
 * @param {Object} target
 * @Param {String} key
 * @param {Object} value
 * @api public
 */

exports.set = function(obj, path, val){
  if (~path.indexOf('.')) {
    var par = parent(obj, path, true);
    var mainKey = path.split('.').pop();
    if (par && 'object' == type(par)) par[mainKey] = val;
  } else {
    obj[path] = val;
  }
};

/**
 * Gets the parent object for a given key (dot notation aware).
 *
 * - If a parent object doesn't exist, it's initialized.
 * - Array index lookup is supported
 *
 * @param {Object} target object
 * @param {String} key
 * @param {Boolean} true if it should initialize the path
 * @api public
 */

exports.parent = parent;

function parent(obj, key, init){
  if (~key.indexOf('.')) {
    var pieces = key.split('.');
    var ret = obj;

    for (var i = 0; i < pieces.length - 1; i++) {
      // if the key is a number string and parent is an array
      if (Number(pieces[i]) == pieces[i] && 'array' == type(ret)) {
        ret = ret[pieces[i]];
      } else if ('object' == type(ret)) {
        if (init && !ret.hasOwnProperty(pieces[i])) {
          ret[pieces[i]] = {};
        }
        if (ret) ret = ret[pieces[i]];
      }
    }

    return ret;
  } else {
    return obj;
  }
}

},{"type-component":9}],9:[function(require,module,exports){

/**
 * toString ref.
 */

var toString = Object.prototype.toString;

/**
 * Return the type of `val`.
 *
 * @param {Mixed} val
 * @return {String}
 * @api public
 */

module.exports = function(val){
  switch (toString.call(val)) {
    case '[object Function]': return 'function';
    case '[object Date]': return 'date';
    case '[object RegExp]': return 'regexp';
    case '[object Arguments]': return 'arguments';
    case '[object Array]': return 'array';
  }

  if (val === null) return 'null';
  if (val === undefined) return 'undefined';
  if (val === Object(val)) return 'object';

  return typeof val;
};

},{}],10:[function(require,module,exports){

/**
 * Module dependencies.
 */

var type = require('component-type');

/**
 * Module exports.
 */

module.exports = eql;

/**
 * MongoDB style value comparisons.
 *
 * @param {Object} matcher
 * @param {Object} value
 * @return {Boolean} true if they match
 */

function eql(matcher, val){
  switch (type(matcher)) {
    case 'null':
    case 'undefined':
      // we treat null as undefined
      return null == val;

    case 'regexp':
      return matcher.test(val);

    case 'array':
      if ('array' == type(val) && matcher.length == val.length) {
        for (var i = 0; i < matcher.length; i++) {
          if (!eql(val[i], matcher[i])) return false;
        }
        return true;
      } else {
        return false;
      }
      break;

    case 'object':
      // object can match keys in any order
      var keys = {};

      // we match all values of `matcher` in `val`
      for (var i in matcher) {
        if (matcher.hasOwnProperty(i)) {
          if (!val.hasOwnProperty(i) || !eql(matcher[i], val[i])) {
            return false;
          }
        }
        keys[i] = true;
      }

      // we make sure `val` doesn't have extra keys
      for (var i in val) {
        if (val.hasOwnProperty(i) && !keys.hasOwnProperty(i)) {
          return false;
        }
      }

      return true;

    default:
      return matcher === val;
  }
}

},{"component-type":4}],11:[function(require,module,exports){

/**
 * HOP ref.
 */

var has = Object.prototype.hasOwnProperty;

/**
 * Return own keys in `obj`.
 *
 * @param {Object} obj
 * @return {Array}
 * @api public
 */

exports.keys = Object.keys || function(obj){
  var keys = [];
  for (var key in obj) {
    if (has.call(obj, key)) {
      keys.push(key);
    }
  }
  return keys;
};

/**
 * Return own values in `obj`.
 *
 * @param {Object} obj
 * @return {Array}
 * @api public
 */

exports.values = function(obj){
  var vals = [];
  for (var key in obj) {
    if (has.call(obj, key)) {
      vals.push(obj[key]);
    }
  }
  return vals;
};

/**
 * Merge `b` into `a`.
 *
 * @param {Object} a
 * @param {Object} b
 * @return {Object} a
 * @api public
 */

exports.merge = function(a, b){
  for (var key in b) {
    if (has.call(b, key)) {
      a[key] = b[key];
    }
  }
  return a;
};

/**
 * Return length of `obj`.
 *
 * @param {Object} obj
 * @return {Number}
 * @api public
 */

exports.length = function(obj){
  return exports.keys(obj).length;
};

/**
 * Check if `obj` is empty.
 *
 * @param {Object} obj
 * @return {Boolean}
 * @api public
 */

exports.isEmpty = function(obj){
  return 0 == exports.length(obj);
};
},{}],12:[function(require,module,exports){

/**
 * Module dependencies.
 */

var eql = require('mongo-eql');
var type = require('component-type');

/**
 * $ne: not equal.
 */

exports.$ne = function $ne(matcher, val){
  return !eql(matcher, val);
};

/**
 * $gt: greater than.
 */

exports.$gt = function $gt(matcher, val){
  return type(matcher) === 'number' && val > matcher;
};

/**
 * $gte: greater than equal.
 */

exports.$gte = function $gte(matcher, val){
  return type(matcher) === 'number' && val >= matcher;
};

/**
 * $lt: less than.
 */

exports.$lt = function $lt(matcher, val){
  return type(matcher) === 'number' && val < matcher;
};

/**
 * $lte: less than equal.
 */

exports.$lte = function $lte(matcher, val){
  return type(matcher) === 'number' && val <= matcher;
};

/**
 * $regex: supply a regular expression as a string.
 */

exports.$regex = function $regex(matcher, val){
  // TODO: add $options support
  if ('regexp' != type('matcher')) matcher = new RegExp(matcher);
  return matcher.test(val);
};

/**
 * $exists: key exists.
 */

exports.$exists = function $exists(matcher, val){
  if (matcher) {
    return undefined !== val;
  } else {
    return undefined === val;
  }
};

/**
 * $in: value in array.
 */

exports.$in = function $in(matcher, val){
  if ('array' != type(matcher)) return false;
  for (var i = 0; i < matcher.length; i++) {
    if (eql(matcher[i], val)) return true;
  }
  return false;
};

/**
 * $nin: value not in array.
 */

exports.$nin = function $nin(matcher, val){
  return !exports.$in(matcher, val);
};

/**
 * @size: array length
 */

exports.$size = function(matcher, val){
  return Array.isArray(val) && matcher == val.length;
};

},{"component-type":4,"mongo-eql":10}]},{},[2])(2)
});

redpajama_set_name: RedPajamaGithub


text:
Leaders battle over jobs, pipelines, fighter jets
Pipeline policies put NDP's Tom Mulcair, Conservatives' Stephen Harper on defensive in first federal election debate
Liberal Party leader Justin Trudeau
Federal party leaders squared off in their first TV debate Thursday, a mostly polite two-hour exchange of views on the economy, environment and military action overseas.
The environment segment was most focused on B.C., where Prime Minister Stephen Harper was pressed on stalled pipeline proposals to the west and east coasts as well as to the U.S. Harper said low world prices for energy make it the only sector that is under-performing, while the rest of the economy is growing.
Green Party leader Elizabeth May urged NDP leader Thomas Mulcair to oppose the twinning of the TransMountain oil pipeline from Alberta to its Burnaby terminal. Mulcair stuck to his position that he will await a federal environmental review.
Harper noted that Liberal leader Justin Trudeau has opposed capital cost allowances for liquefied natural gas investors, weakening the case for new gas pipelines. He said the government approved the Northern Gateway pipeline proposed to run to Kitimat, with more than 200 conditions because "that's how the system works."
Trudeau and Harper sparred over greenhouse gas emission efforts, with Harper noting he moved ahead on curbing coal power plant emissions three years before U.S. President Barack Obama.
Harper agreed that approval of the Keystone XL pipeline from Alberta to southern U.S. refineries will likely have to wait for Obama to leave office next year.
May said Harper is nowhere near meeting his own commitment to curb emissions, as forest fires rage and extreme weather increases all year around.
The debate moderator, Maclean's magazine columnist Paul Wells, asked Harper if he owes Canadians an apology for appointing since-suspended senators Mike Duffy, Pamela Wallin and Patrick Brazeau. Harper did not apologize, saying the provinces need a consensus to reform the senate through elections as he proposed, or to abolish it.
[watch debate here]
Mulcair and Trudeau oppose the current bombing missions against Islamic State terrorist targets in Syria and Iraq. Mulcair said he would support military action sanctioned by the United Nations or under Canada's NATO commitments.
Harper said the deployment of six fighter jets with special forces support is what Canada's allies want to do, and Islamic State is a "nerve centre" for a global movement that has targeted Canada specifically.
Anti-violence measures increase at four hospitals
Pacific Rim Foundation Scholarship awarded

redpajama_set_name: RedPajamaCommonCrawl


text:
U bent hier: Home / Bronnen / Bedrijfsleven & Ondernemers / OESO stelt roadmap voor het lidmaatschap van Letland
OESO stelt roadmap voor het lidmaatschap van Letland
Gepost door: Content Editor V oktober 17, 2013
in Bedrijfsleven & Ondernemers, Economie & Financiën, Internationale, Trustsector
The OECD has set out a path for Latvia's accession to the Organisation, reinforcing a commitment to extend its global membership. The 34 OECD Members have approved a Roadmap to accession for Latvia establishing the process and setting out the terms for future membership. This follows the political decision taken at the OECD Ministerial Meeting in Paris in May 2013.
http://www.oecd.org
news.contact@oecd.org
http://www.oecd.org/newsroom/oecd-sets-out-roadmap-for-latvias-membership.htm
OECD Secretary-General Angel Gurría said: "Launching talks with Latvia underlines the Organisation's commitment to broaden its reach and its position as a global standard setter. Our joint objective is to work together to bring Latvia's policies closer to OECD best practices."
The first step in the process will see Latvia submit an Initial Memorandum setting out its position on some 250 OECD legal instruments (see www.oecd.org/acts). This will in turn lead to a series of technical reviews by OECD experts, who will collect further information from Latvia through questionnaires and fact-finding missions.
As part of the accession process, the OECD will evaluate Latvia's implementation of the Organisation's legal instruments and best policies and practices. Its Committees may make recommendations for adjustments to legislation, policy or practice to bring Latvia closer to OECD instruments or best practices, serving as a catalyst for reform.
Latvian officials will now begin to engage with OECD Committees composed of experts drawn from Member countries in the following areas: Investment, Bribery in International Business Transactions, Corporate Governance, Financial Markets, Insurance & Private Pensions, Competition, Tax, Environment, Chemicals, Public Governance, Regulatory Policy, Statistics, Economics, Education, Employment, Labour & Social Affairs, Health, Trade and Export Credits, Fisheries, Science & Technology, IT & Communications and Consumer Policy.
Once the Committees give their green light, a final decision must be taken by all OECD Member countries in the governing body, the OECD Council. In accordance with the OECD Convention, decisions on membership are taken by unanimity.
Created in 1961 as the successor to the Organisation for European Economic Co-operation, which administered the Marshall Plan at the end of WWII, OECD serves as an economic, environmental and social policy forum for its 34 member countries, as well as partners worldwide on the world's most important global challenges. Its aim is to devise better policies and better lives.
The OECD's current members are: Austria, Australia, Belgium, Canada, Chile, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Ireland, Israel, Italy, Japan, Korea, Luxembourg, Mexico, the Netherlands, New Zealand, Norway, Poland, Portugal, Slovak Republic, Slovenia, Spain, Sweden, Switzerland, Turkey, the United Kingdom and the United States.
The last accession process dates to 2007, when OECD invited five nations to open talks on accession. Chile, Estonia, Israel and Slovenia became full members in 2010. Accession talks with the Russian Federation are on-going and the accession process for Colombia was launched only last month.
Angel Gurría Chemicals Competition Consumer Policy corporate governance Economics education Employment Environment Financial Markets Fisheries health Initial Memorandum Insurance & Private Pensions International Business Transactions investment IT & Communications Labour & Social Affairs Latvia Letland lidmaatschap OECD OECD Ministerial Meeting OESO Paris persbericht Public Governance Regulatory Policy roadmap Science & Technology Statistics TAX Trade and Export Credits	2013-10-17
Getagged met:Angel Gurría Chemicals Competition Consumer Policy corporate governance Economics education Employment Environment Financial Markets Fisheries health Initial Memorandum Insurance & Private Pensions International Business Transactions investment IT & Communications Labour & Social Affairs Latvia Letland lidmaatschap OECD OECD Ministerial Meeting OESO Paris persbericht Public Governance Regulatory Policy roadmap Science & Technology Statistics TAX Trade and Export Credits
Vorige: PricewaterhouseCoopers: "Tariefsverlaging box 2 levert niet de gewenste belastingopbrengst op"
Volgende: Chemische gevaren OESO-programma's om de focus te verleggen


Portable appliance testing (PAT) is the examination of electrical appliances and equipment to make sure they are safe to use. The majority of electrical safety defects can be found by visual examination but others can only be found by testing. However, it is also important to note that some electrical defects cannot be detected through testing alone.
How often to you need to test your electrical appliances?
The frequency of the testing and inspection of your electrical appliances depends on what type of equipment it is and how regularly they are used. A device that used more often will need to be tested more regulary.
Is it a legal requirement to have all my portable electrical appliances tested each year?
It is stated within the Electricity at Work Regulations 1989 that any electrical device or appliance which has the potential to cause injury must be maintained in a safe condition, however it does not state how often tests need to be carried out.
MIM NI Ltd can offer PAT testing on all equipment using the most up-to-date technology– our competent electrical engineer will test your equipment, label it accordingly and produce a register of all equipment tested and the next inspection due date.


For skincare tips, news and offers sign up to our newsletter.
You've seen it everywhere on the 111SKIN website and on the ingredient list for all of our products, now you want to know what NAC Y2 is? Why is this molecule so important?
NAC Y2 is a patent pending combination that delays ageing and stimulates the body's natural repair system to work on the lines and wrinkles that are already present.


text:
Frequently asked questions about Singapore corporate taxes
How much corporate tax needs to be paid in Singapore?
Corporate income tax in Singapore is 17% flat rate. Resident Companies earning below S$300,000, however, resident Companies that are just incorporated and composed primarily of individual shareholders pay a much lower corporate tax,as below:
The initial annual profit of S$100,000 is tax exempted in each of the first three years;
The succeeding annual profit of S$200,000 is subject to 8.5% tax rate;
A flat tax rate of 17% is applied to profits beyond the S$300,000 earnings.
This exemption is available for each of the first 3 years of operation of the company.
When are corporate taxes due for filing?
In Singapore, the tax related information must be filed with IRAS two times.
Firstly- Within 3 months from the accounting year end you must file ECI (Estimated chargeable income) with IRAS. This as name suggest is estimated amount.
Then by November 30 of the assessment year you must file a corporate tax return. The tax return must cover earnings from the company's last financial year.
Figures reported in tax return can differ from ECI, however in case of huge differences the explanation must be provided.
Are all companies operating in Singapore required to submit an audited account?
Unaudited accounts can be filed by a company provided that it meets all of the following criteria:
Annual revenue of the company does not go beyond S$5 million;
The company has 20 or less total shareholders;
All shareholders are individuals.
All other companies, are mandated by tax authorities to file audited accounts.
How about capital gains, are they taxed in Singapore?
To attract more investments, Singapore provides tax exemption on capital gains provided that these earnings are not derived solely from investments trading.
Do shareholders of Singapore companies pay taxes on dividends?
Singapore does not tax dividends on earnings from shareholdings. The tax-free earnings can then be divided among shareholders.
Does Singapore offer tax incentives to start-up companies?
Singapore is a strong advocate of small and medium enterprises. As such, it implemented various measures to encourage more private limited start-up companies. To qualify for a start-up tax incentive, a company must adhere to the following conditions:
Its shareholders must be 20 or less;
At least one individual shareholder must own 10% of the total shares of the company;
It must be incorporated in Singapore; and
It must be a Singapore tax-resident.
Once a company meets all the criteria, it will enjoy the follow tax incentives:
In its first three years of operation, the first S$100,000 taxable income in each of the year is not taxed. The next S$200,000 will have a partial exemption tax rate of 8.5 percent. Earnings beyond S$300,000 are subject to the normal 17% corporate tax rate.
Beyond three years, the company will enjoy a 9% corporate tax rate for any taxable income not exceeding S$300,000; in excess of the said amount, the 17% corporate tax rate applies.
After filing of tax returns, can a company distribute its profits of overseas shareholders?
The dividend income (profit after tax) of a company can be disposed of in any manner that the company sees fit. Thus, a company can send the profits over to shareholders overseas. The dividends maybe subject to taxes in the home country, unless the country has existing tax treaty with Singapore. In this case, taxes on said dividend are subject to the provisions of the treaty.
Is there any limitation on the amount of dividend that can be repatriated out of Singapore?
No. There is no limitation on the amount of dividend that can be declared and repatriated out of Singapore. The only practical limitation can be the amount of profit and amount available in your bank account.
Can we declare dividend on a regular basis during the year?
No. Dividend is paid out of post-tax profit of the company. It needs to be approved in the AGM of the company. So as such it is done annually once.
If a company does not generate any taxable income in the first three years, can it use its exemptions in the subsequent years?
The exemptions and tax privileges accorded in the first three years of operations cannot be carried over to subsequent years, even when a company is not able to claim such benefits.
Is a company required to file a tax return if it did not generate any profit on a given year?
A tax return and ECI filing is mandatory for every Singapore company regardless of its earnings.
Can losses of a company be carried over?
The unutilised losses can be carried forward to offset against your company's assessable income for the subsequent YAs if there is no substantial change in the shareholders* and their shareholdings as at the relevant dates.
Similarly, the unutilised capital allowances can be carry forward to offset against the assessable income of the subsequent YAs if there is no substantial change in the shareholders* and their shareholdings as at the relevant dates and there is no change in the company's principal activities during the relevant dates.
Is the tax chargeable on sales receipts or on sales minus business cost?
Taxes are charged on the profits of the company. Which is calculated after deducting business expenses from the sales receipt.
Is royalty income subject to tax?
Royalty income, whether generated in Singapore or generated outside but received into the country, is subject to tax. This refers to income from payments received on the use of copyrighted materials, trademarks, or patents.
Does a company whose earning comes solely from stock trading included in the capital gains tax exemption?
For a company whose main business is of stock / derivatives trading, the income generated is considered as a business income. As such any company that deals solely on stock trading cannot enjoy the capital gains exemption privilege as the profits earned from trading is considered as its income.
Our overseas client deducted withholding tax from amount due to us. Can we claim tax credit in Singapore based on that certificate?
Yes in most of the circumstances (Depending on DTA) you can claim credit from tax payable for the tax withheld in overseas country. For this you will need to provide withholding tax certificate at the time of filing your company's income tax return.


PZL.56 Kania was a Polish pre-war initial project of a fighter aircraft designed by Wsiewołod Jakimiuk of the PZL works. A single-seat low-wing monoplane was a development of PZL.50 Jastrząb fighter, modified to house a new Hispano-Suiza 12Y engine, then under development in France.
While PZL.50 Jastrząb's prototype proved to be an excellent fighter, it was seriously underpowered as modern engines of sufficient power were still unavailable at the time of its construction. Its PZL-Bristol Merkury VIII engine (a license-built copy of Bristol Mercury VIIIA) had only 725 horsepower (541 kW) of power, with emergency power reaching 840 horsepower (630 kW). At the same time the engineers at the French Hispano-Suiza company announced, that their line of engines marketed as Hispano-Suiza 12Y would reach 1,100 horsepower (820 kW) of power in two to three years.
Such engines would be sufficient to power the PZL.50, or any other similar fighter design considered by the Polish construction bureaus at the time. To prepare for the arrival of new engines, the PZL works organised an internal competition for a redesign of PZL.50 from a large radial engine to a smaller, more streamlined in-line engine. Poland also wanted to buy a license for even stronger engines of the new Hispano-Suiza 12Z line that would ultimately replace the 12Y series.
The contest was won in August 1939 by Wsiewołod Jakimiuk. The resulting design was an all-metal, low-wing fighter aircraft, with retractable landing gear and tail wheel. The plane was to be armed with a single 20mm gun firing through the propeller shaft and four 7.9 mm machine guns in the wings. Possibly the design would also allow for up to 500 kilograms (1,100 lb) of bombs to be carried under the wings or the fuselage. The projected speed was to exceed 500 kilometres per hour (310 mph). Project prepared in August 1939 was rejected in favour of PZL.55 designed by Jerzy Dąbrowski.


Expertly handcrafted by General Cigar for over 40 years, Macanudo needs no introduction. It is one of America's best selling premium cigars. Available in a variety of sizes, blends, shapes, and strengths, these handmade cigars have been described as thoroughly aged, distinctively smooth, good as gold, perfectly balanced, as nature intended, rich and intriguing, rare and luxurious, exotic and extraordinary, rich, dark, and unexpected, and just downright delicious. A staple in every connoisseur's humidor, there's a Macanudo cigar to satisfy every smoker's tastes.
Nice mellow cigarillo, smooth, satisfying, and great for a smoke break at the office.


text:
package com.dream.llb.common.http;

import android.util.Log;

import com.dream.llb.config.Config;

import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by Derrick on 2017/6/19.
 */

public class RetrofitServiceManager {
    private static RetrofitServiceManager INSTANCE = null;
    private Retrofit mRetrofit = null;

    private OkHttpClient getOkHttpClient() {
        //日志显示级别BASIC、NONE、HEADERS、BODY
        HttpLoggingInterceptor.Level level = HttpLoggingInterceptor.Level.BASIC;
        //新建log拦截器
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
            @Override
            public void log(String message) {
//                Log.d("zcb", "OkHttp====Message:" + message);
            }
        });
        loggingInterceptor.setLevel(level);

        //定制OkHttp
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        //OkHttp进行添加拦截器loggingInterceptor
        builder.addInterceptor(loggingInterceptor);
        builder.connectTimeout(Config.DEFAULT_TIME_OUT, TimeUnit.SECONDS);//连接超时时间
        builder.writeTimeout(Config.DEFAULT_TIME_OUT, TimeUnit.SECONDS);//写操作 超时时间
        builder.readTimeout(Config.DEFAULT_TIME_OUT, TimeUnit.SECONDS);//读操作超时时间
        return builder.build();
    }

    private RetrofitServiceManager() {
//        // 添加公共参数拦截器
//        HttpCommonInterceptor commonInterceptor = new HttpCommonInterceptor.Builder()
//                .addHeaderParams("paltform","android")
//                .addHeaderParams("userToken","1234343434dfdfd3434")
//                .addHeaderParams("userId","123445")
//                .build();
//        builder.addInterceptor(commonInterceptor);

        mRetrofit = new Retrofit.Builder()
                .baseUrl(Config.CURRENT_BASE_URL)
                .client(getOkHttpClient())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }

    public static RetrofitServiceManager getRetrofitInstance() {
        if (INSTANCE == null) {
            synchronized (RetrofitServiceManager.class) {
                if (INSTANCE == null) {
                    RetrofitServiceManager.INSTANCE = new RetrofitServiceManager();
                }
            }
        }
        return INSTANCE;
    }

    public static void clearInstance() {
        INSTANCE = null;
    }

    public <T> T create(Class<T> service) {
        return mRetrofit.create(service);
    }
}


text:
Filters: Tags: Island of Hawaii (X)
OGC WMS Service (1)
PCMSC Science Data Coordinator
Pacific Coastal and Marine Science Center
USGS Scientific Topic Keyword (1)
Harvest Set (1)
Geographic Names Information System (GNIS) (10)
USGS Thesaurus (10)
Data Categories for Marine Planning (10)
Marine Realms Information Bank (MRIB) Keywords (7)
None [use only if needed] (4)
ISO 19115 Topic Category (11)
Water level, temperature, and salinity time-series data from nearshore coral reef locations along the west coast of Hawaii Island (2010-2011)
Time-series data of water level, water temperature, and salinity were collected at 10 locations along west Hawaii Island between 2010 and 2011 in nearshore coral reef settings. Conductivity-temperature-depth sensors were attached to fossil limestone, rock, or dead coral within otherwise healthy coral reef settings spanning water depths of 8 to 23 ft. Continuous measurements were made every 10 or 20 minutes.
Categories: Data; Types: Map Service, OGC WFS Layer, OGC WMS Layer, OGC WMS Service; Tags: CMHRP, Coastal and Marine Hazards and Resources Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, Puuhonua O Honanaunau National Historical Park, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, distributions, diving, habitat, health and disease, ocean salinity, oceans, reef ecosystems, sampling, water temperature, Fewer tags
Surface-water temperature, salinity, Ph, and dissolved oxygen data from nearshore coral reef locations along the west coast of Hawaii Island (2010-2013)
Spatial measurements of water temperature, specific conductance, salinity, pH, and dissolved oxygen between 0.25 and 0.50 m water depth were collected every 10-seconds along and across shore at 12 principal study areas along west Hawaii Island. Measurements were made between 2010 and 2013 during different seasons and tide states over the course of 1.0 to 2.5 hours to evaluate the spatial and temporal extent of water properties that influence coral reef health and coral reef habitat availability.
Categories: Data; Tags: CMHRP, Coastal and Marine Hazards and Resources Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, Puuhonua O Honanaunau National Historical Park, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, dissolved oxygen, distributions, diving, habitat, health and disease, ocean salinity, oceans, oxygen content (water), reef ecosystems, sampling, sea surface temperature, water pH, Fewer tags
Conductivity, temperature, and depth (CTD) data from nearshore coral reef locations along the west coast of Hawaii Island (2010-2014)
Conductivity-Temperature-Depth (CTD) profile data were collected along transects and across study areas of west Hawaii Island between 2010 and 2014. Measurements were made over a range of tide and weather conditions and help characterize the spatial extent and variability in estuarine conditions across the reef when grouped by 1 to 2-hour survey period or by season.
Categories: Data; Tags: CMHRP, Coastal and Marine Hazards and Resources Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, Puuhonua O Honanaunau National Historical Park, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, distributions, diving, habitat, health and disease, oceans, reef ecosystems, sampling, water temperature, Fewer tags
Coral bleaching data by site, West Hawaii, 2010-2011
Observations of bleached coral were documented by scuba divers along pre-determined transects and are presented here in comma-separated format. Included in the table are coral species observed, colony size, size of bleached area on colony, and seawater temperature.
Categories: Data; Types: Citation; Tags: CMGP, Coastal and Marine Geology Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, distributions, diving, habitat, health and disease, oceans, reef ecosystems, sampling, transect sampling, Fewer tags
Projected flooding extents and depths based on 10-, 50-, 100-, and 500-year wave-energy return periods, with and without coral reefs, for the States of Hawaii and Florida, the Territories of Guam, American Samoa, Puerto Rico, and the U.S. Virgin Islands, and the Commonwealth of the Northern Mariana Islands
This data release provides flooding extent polygons (flood masks) and depth values (flood points) based on wave-driven total water levels for 22 locations within the States of Hawaii and Florida, the Territories of Guam, American Samoa, Puerto Rico, and the U.S. Virgin Islands, and the Commonwealth of the Northern Mariana Islands. For each of the 22 locations there are eight associated flood mask polygons and flood depth point files: one for each four nearshore wave energy return periods (rp; 10-, 50-, 100-, and 500-years) and both with (wrf) and without (worf) the presence of coral reefs. These flood masks can be combined with economic, ecological, and engineering tools to provide a rigorous financial valuation...
Tags: American Samoa, CMHRP, CNMI, Cayo Vieques, Coastal and Marine Hazards and Resources Program, All tags... Commonwealth of the Northern Mariana Islands, Coral Reef, Culebra, Florida Keys, Florida Peninsula, Guam, Habitat, Hawaiian Islands, Isla de Culebra, Island of Hawai'i, Island of Hawaii, Island of Puerto Rico, Kaho'olawe, Kahoolawe, Kaua'i, Kauai, Key West, Lana'i, Lanai, Manua, Maui, Miami, Moloka'i, Molokai, Ni'ihau, Niihau, O'ahu, Oahu, Ofu-Olosega, PCMSC, Pacific Coastal and Marine Science Center, Palm Beach, Puerto Rico, Saint Croix, Saint John, Saint Thomas, Saipan Island, St. Croix, St. John, St. Thomas, State of Florida, State of Hawaii, Tau, Tinian Island, Tutuila, U.S. Geological Survey, U.S. Virgin Islands, USGS, USVI, United States of America, Vieques, Virgin Islands, coastal processes, coral reef communities, environment, flooding, geoscientificInformation, oceans, reef, reef ecosystems, Fewer tags
Coral disease data by transect, West Hawaii, 2011
Observations of coral disease and health indicators were documented by scuba divers along pre-determined transects and are presented here in comma-separated format. Included in the table are coral species observed, colony size, types and number of indicators observed, and a size range of indicators observed.
Categories: Data; Types: Citation; Tags: CMGP, Coastal and Marine Geology Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, distributions, diving, habitat, health and disease, oceans, reef ecosystems, sampling, Fewer tags
Hawaii Island, modelled density of malaria-resistant and -susceptible Iiwi following release of malaria-resistant birds under three climate change projections, 2030-2100
This data set provides the simulated results of releasing malaria-resistant Iiwi into existing populations of wild birds on the Island of Hawaii. Resistant birds are released into mid- and high-elevation forests at different densities at 10-year intervals from 2030 to 2070. Populations of both malaria-resistant and susceptible Iiwi are then predicted at 10-year intervals from release until 2100. Predictions are made based on 3 different climate change projections: A1B, RCP4.5, and RCP8.5. The goal of this project is to evaluate the feasibility of creating a successful population of Iiwi when faced with higher malaria infection predicted as a result of climate change. The model results presented here build upon two...
Categories: Data; Tags: CRISPR, Ecology, Hawaiian forest birds, Iiwi, Island of Hawaii, All tags... USGS Science Data Catalog (SDC), Wildlife Biology, Wildlife Disease, avian malaria, biota, climate change, facilitated adaptation, gene editing, Fewer tags
Coral Point Count (CPCe) summary data by transect, West Hawaii, 2010-2011
Coral Point Count with Excel extensions (CPCe; Kohler and Gill, 2006) was used to help calculate percent of coral cover or other benthic substrates from a randomly selected subset of seafloor photographs collected on the west Hawaii Island coast.
Categories: Data; Types: Citation; Tags: CMHRP, Coastal and Marine Hazards and Resources Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, distributions, diving, habitat, health and disease, oceans, photographic sampling, reef ecosystems, sampling, underwater photography, Fewer tags
Projected flood extent polygons and flood depth points based on 10-, 50-, 100-, and 500-year wave-energy return periods, with and without coral reefs, for the State of Hawaii (the islands of Hawaii, Kahoolawe, Kauai, Lanai, Maui, Molokai, Niihau, and Oahu)
This part of the data release presents projected flooding extent polygon (flood masks) and flooding depth points (flood points) shapefiles based on wave-driven total water levels for the State of Hawaii (the islands of Hawaii, Kahoolawe, Kauai, Lanai, Maui, Molokai, Niihau, and Oahu). For each island there are 8 associated flood mask and flood depth shapefiles: one for each of four nearshore wave energy return periods (rp; 10-, 50-, 100-, and 500-years) and both with (wrf) and without (worf) the presence of coral reefs. Flooding depth point data are also presented as a comma-separated value (.csv) text file.
Categories: Data; Types: Downloadable, Map Service, OGC WFS Layer, OGC WMS Layer, Shapefile; Tags: CMHRP, Coastal and Marine Hazards and Resources Program, Coral Reef, Habitat, Hawaiian Islands, All tags... Island of Hawaii, Island of Hawai�i, Kahoolawe, Kaho�olawe, Kauai, Kaua�i, Lanai, Lana�i, Maui, Molokai, Moloka�i, Niihau, Ni�ihau, Oahu, O�ahu, PCMSC, Pacific Coastal and Marine Science Center, State of Hawaii, U.S. Geological Survey, USGS, United States of America, coastal processes, coral reef communities, environment, flooding, geoscientificInformation, oceans, reef, reef ecosystems, Fewer tags
Water temperature time-series data from nearshore coral reef and anchialine pool locations along the west coast of Hawaii Island (2010-2013)
Time-series data of water temperature were collected at 33 locations along the west coast of the Island of Hawaii, including within Kaloko-Honokohau National Historical Park (KAHO), and Puu o Honaunau National Historical Park (PUHO) between 2010 and 2013 in nearshore coral reef and anchialine pool settings. Temperature sensors were attached to fossil limestone, rock or dead coral within otherwise healthy coral reef settings spanning water depths of 0.1 to 8.84 m (0.3 to 29.0 ft). Continuous measurements were made every 10 or 20 minutes. Due to the large amount of data, the dataset has been split into three files. WaterTempTimeSeries_KAHO-KC.csv includes data from nearshore coral reef locations within Kaloko Bay,...
Coral species and size data by transect, West Hawaii, 2011
Observations of coral species and size were documented by scuba divers along pre-determined transects and are presented here in comma-separated format.
Categories: Data; Types: Citation; Tags: CMHRP, Coastal and Marine Hazards and Resources Program, Freeze Face, Hawaii, Honaunau Bay, All tags... Honokohau Small Boat Harbor, Island of Hawaii, Kailua Pier, Kailua-Kona, Kaloko Cut, Kaloko-Honokohau National Historical Park, Keawaiki, Kona, PCMSC, Pacific Coastal and Marine Science Center, State of Hawaii, U.S. Geological Survey, USGS, assessments, corals, distributions, diving, habitat, health and disease, oceans, reef ecosystems, sampling, Fewer tags


In this tutorial, we'll be designing a book cover to be displayed on a webpage. Instead of using an image to represent the cover of a book, using HTML and CSS alone will make your content more accessible and SEO-friendly. It's not that big of a difference, and you can't get as pixel-perfect of a design as you could in Photoshop. Personally, I like to spend my time in code, so designing in CSS is much more efficient.
Plus, this is just an experiment, and hopefully we'll learn something.
The key to this design is the ability to use multipe box-shadow and text-shadow properties.
This refers to the outermost div element with the book-cover class.
That's definitely a mouthful. Luckily it's easier to handle with SASS.
Basically, the first part ($pages) goes from the top right outwards to create the 'page' imitation. This is created with a @for loop going from 0 through $pageLength. The farther back pages are supposed to be darker, so I used SASS's darken function. The farthest back page in this situation will be darkened 35%.
The second part is multiple green shadows right behind them but shifted one pixel to the left. This imitates the back of the spine. The last shadow is just a big drop shadow to create some pop on the screen.
Feel free to change the $pageLength variable to any size you want. Change $pageGap to 2 to make the book's pages seem more leafy. You can make some huge looking books!
The inner .fade container is what lets us change the color of the book cover. Simple alter the $color variable, and the shadows and borders will be automatically changed. You can see that on my current product page for The Self-Taught Developer's Handbook I changed the color to purple. This div is shifted 5px to the right with an equally shifted left box-shadow that is slightly darker, which imitates the crease in the cover. A second layer of box-shadow is darker and half the width, to give depth to the crease.
I hope you find this useful in the future if you need to promote your own book. The great thing about using SASS is that it's easily tweakable. I'm still constanstly changing the design I'm using. If you prefer to do your designing in Photoshop, Nathan Barry has an excellent tutorial.


text:
We Rely On Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained for the past 15 years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium. You can also consider a tip via PayPal.
Lightspark's Advanced Graphics Engine Progresses
Written by Michael Larabel in Proprietary Software on 25 September 2010 at 04:07 PM EDT. 9 Comments
For those interested in the state of the "advanced graphics engine" for Lightspark, the newest and promising open-source project to implement support for Adobe's Flash/SWF specification, there's an update. This graphics engine is progressing, according to Alessandro Pignotti, the lead developer of Lightspark.
In a new blog post by Alessandro he announces another Lightspark Flash Player point release that offers up bug-fixes and he proceeds to talk about the progress being made on this graphics engine.
For those that didn't read our original write-up about the graphics improvements coming to Lightspark, "The new graphics path for Lightspark is expected to be faster and more powerful with a mix of hardware and software rendering with its design being inspired by modern compositing managers. Geometries will be generated using Cairo in a multi-threaded friendly manner. The resulting objects will then be offloaded to the GPU using PBOs (Pixel Buffer Objects) while OpenGL will be used to blit the rendered components on the screen and apply any filters/effects."
The new graphics engine for Flash isn't yet up to a feature parity with the current engine found in Lightspark 0.4.x, but it's looking good and still sounds to be on track for Lightspark 0.4.5. Alessandro is also reporting speed gains for this new code path that leverages Cairo and more advanced drawing techniques than the current implementation.
DaVinci Resolve 16 Beta Video Editor Employing Deep Learning, GPU Accelerated Tools
Lightworks Video Editor Plans For A Busy 2019 But No Signs Of The Open-Source Version
Adobe Customer Care: There Hasn't Been Enough Demand For Linux
Lightworks 14.5 Video Editor Released With Same-Day Linux Support But Still No Source
DaVinci Resolve 15 Video/Effects Editor Released With Linux Support
A VR Developer's Thoughts On The Current Mess Of APIs & Hardware
Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.
Linus Torvalds Doesn't Recommend Using ZFS On Linux
Multipath TCP Support Is Working Its Upstream - First Bits Landing With Linux 5.6
Linux In 2020 Can Finally Provide Sane Monitoring Of SATA Drive Temperatures


text:
Watch Live: Cardiff City vs. Norwich City (Lineups and Discuss)
By Kirsten SchlewitzFeb 1, 2014, 9:42 AM EST
Can the Premier League's bottom side manage to collect all three points against Norwich City today? Cardiff are currently on 18 points, and even a win might not lift them to safety – but it just might provide hope that the Bluebirds will survive (watch live online on NBC Sports Live Extra at 10 a.m. ET).
If you're looking for a high scoring match, this one probably won't be it. When the two sides met in October at Carrow Road, they each walked away with a point after playing out a goalless draw. And despite certain clubs' tendency to put four or more past Norwich, the Bluebirds, with just 17 goals – the lowest scored in the league – aren't going to be the side that puts in seven.
No, this one is much more likely to be a match of careful calculation. The Canaries might be in 12th, but they're still just five points from safety, and pulling them up point by point might be the way that Chris Hughton will be able to keep hold of his job.
WATCH LIVE ONLINE VIA NBC SPORTS LIVE EXTRA
Several changes for both sides this afternoon in Cardiff. The hosts insert new signings Fabio and Kenwyne Jones straight into the starting lineup, while Wilfried Zaha, on loan from Manchester United, takes his place on the bench.
Hughton makes several changes to the side that held Newcastle to a goalless draw in midweek. Alexander Tettey, Jonas Gutierrez and Johan Elmander are included in the starting lineup, while Leroy Fer, Anthony Pilkington and Ricky van Wolfswinkel all drop to the bench.
Cardiff City: Marshall; Fabio, Caulker, Turner, John; Whittingham, Medel, Mutch, Noone; Bellamy, Jones
Subs: Lewis; Campbell, Eikrem, Gunnarsson, Theophile-Catherine, Daehli, Zaha
Norwich City: Ruddy; Martin, R Bennett, Bassong, Olsson; Snodgrass, Tettey, Johnson, Gutierrez; Elmander, Hooper.
Subs: Bunn, Whittaker, van Wolfswinkel, Fer, Pilkington, Becchio, Redmond.
Follow @KDS_Football
Tags: Alexander Tettey, Anthony Pilki, Anthony Pilkington, Cardiff City, Chris Hughton, Fabio, Johan Elmander, Jonas Gutierrez, Kenwyne Jones, Leroy Fer, Manchester United, Newcastle United, Norwich City, Queens Park Rangers, Stoke City, Wilfried Zaha


text:
/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"10F238F1-C92B-4BD6-B6C7-2579557A00E7"}
 */
var _license_dsa_mosaic_WEB_cms = 'Module: _dsa_mosaic_WEB_cms \
									Copyright (C) 2011-2013 Data Mosaic \
									MIT Licensed';

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"ADFD8A3F-81DE-4173-93C3-CC18525D8DC9",variableType:4}
 */
var _fidAccept = null;

/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"5BC98740-0B8A-4435-94C6-94ECD3597505"}
 */
var _versionDescription = null;

/**
 * @properties={typeid:35,uuid:"9DCA415B-83EC-4E26-A0F3-0D0DB8DDE447",variableType:-4}
 */
var _versionName = null;

/**
 *
 * @properties={typeid:24,uuid:"B3C7BD86-8EC9-4F33-94B2-19608DA7293D"}
 */
function ACTION_cancel() {
	//not already ok to close, cancel
	if (!globals.CODE_hide_form) {
		//null out all fields
		_versionName = null
		_versionDescription = null

		//enable closing the form
		globals.CODE_hide_form = 1

		globals.CODE_form_in_dialog_close('cmsBlockVersion')

		//resume continuation (will only be true in webclient)
		scopes.DS.continuation.stop(null,controller.getName())
	}
}

/**
 *
 * @properties={typeid:24,uuid:"C4E1BC60-4302-4F88-A0D3-37FFC24C0436"}
 */
function ACTION_ok() {
	//enaable closing the form
	globals.CODE_hide_form = 1

	//accept
	_fidAccept = 1

	globals.CODE_form_in_dialog_close('cmsBlockVersion')

	//resume continuation (will only be true in webclient)
	scopes.DS.continuation.stop(null,controller.getName())
}

/**
 *
 * @properties={typeid:24,uuid:"2253587D-6BB9-40F1-ABDA-D74F8F060D64"}
 */
function FORM_on_show() {

	//disable closing the form
	globals.CODE_hide_form = 0

	//reset acceptance status
	_fidAccept = null

	//reset other fields
	_versionName = null
	_versionDescription = null

	//request focus in first field
	application.updateUI()
	elements.var_versionName.requestFocus()

}


That is a thermostat. it should have continuity at room temp, and open at popcorn popping temps. There are no replacement parts for this manufacturer.
There are no wiring diagrams for this manufacturer.
General wiring practices are that the Hot wire(black) goes to the thermostats, and the neutral wire( White ) is attached to the heat element for the return.
Switches are on the Black wires to break the circuit before power reaches the item it is controlling. A white wire on a switch is for the return from the light in the switch.
Double check the corn measurements, and adequate power supply. Other then that you have to return it, you cannot repair that brand.
Your power cord I would follow into the machine and hunt for a broken wire or a blown fuse possibly. Most pop corn makers are just about like a coffee pot. They have a klixon to control the temp and a couple of bullet fuses in line to prevent over heating. All of which is loacted on the base of the kettle. I wish I could be there to help ya get that popcorn popper working. Feetball season is nearly upon us.
Instructions for use can be found on page.
This model is a HOT AIR popper; oil SHOULD NOT be used in this machine.
Simply fill the kernel cap with with kernels and then pour the kerneles down the hole on the top of the unit. Plug in to power supply. Turn on; kernels should pop 2 tp 2 1/2 minutes.
Make sure you place a large enough bowl under the chute!
The Helman group,Ltd. 1621 Beacon Place,Oxnard,Ca 93033,Tel:805-487-7772.Good Luck!
Please rate as Fixya! if it hits the mark.. Thanks.
Have a manual for Nostalgia Electrics KPM-508 Popcorn Maker?


Bethanna is a Christian organization that provides the highest quality system of care for children and families in order to ensure safety, restore emotional wellness, and build family stability.
Click Here to Support our Pantry Fund Drive!
As the Community Umbrella Agency (CUA) serving South Philadelphia and Center City, Bethanna's programs and services are dedicated to strengthen families, promote resilience, and offer hope in times of need. Help us lead the way home for children and teens in our community.
Providing children with permanent families, rather than indefinitely remaining in the foster care system, is one of Bethanna's core commitments. Without stable and safe home environments, abused, abandoned, and neglected children clearly are at risk of failing to become healthy, productive adults.
Bethanna's Behavioral Health Services offers a wide array of counseling services to build upon and enhance individual and family strengths, opportunities, and skills while promoting emotional well- being.


text:
Le Championnat de Belgique de football D4 1978-1979 est la vingt-septième édition du championnat de Promotion belge en tant que  national.

Clubs participants
Les noms des clubs sont ceux employés à l'époque. Les matricules renseignés en caractères gras existent encore en 2017-2018.

Série A

Localisation – Série A

Série B

Localisation – Série B

LSM = FC St-Martens-Latem

Série C

Localisation – Série C

Louvain =K. Stade LeuvenK. Daring Cl. Leuven+DIE = Diegem Sport

Série D

Localisation – Série D

Classements & Résultats

 Les noms des clubs sont ceux employés à l'époque

Classement final - Série A

Résultats des rencontres – Série A

Classement final - Série B

Résultats des rencontres – Série B

Classement final - Série C

Résultats des rencontres – Série C

Test-match pour désigner le  de la série C

Deux équipes ayant terminé avec le même nombre de points et de victoires sont départagées par un "test-match" pour connaître le deuxième classé.

Classement final - Série D

Résultats des rencontres – Série D

Tournoi pour désigner le Champion de Promotion

Tour final des
Afin de désigner un  éventuel, voire davantage, les équipes ayant terminé à la deuxième place de leur série s'affrontent en un tournoi. La formule est identique à celle de la saison précédente. Les clubs ne jouent plus un mini-championnat mais des rencontres à élimination directe: demi-finales et finale.

K. FC Lommelse SK gagne cette compétition mais aucune place ne se libère dans les étages supérieurs.

Récapitulatif de la saison
 Champion A: R. FC Sérésien  en Promotion (D4)
 Champion B: R. RC Tournaisien  en Promotion (D4)
 Champion C: K. Stade Leuven  en Promotion (D4)
 Champion D: R. FC Hannutois  en Promotion (D4)
 Vingt-deuxième titre de Promotion (D4) pour la Province de Brabant
 Dixième titre de Promotion (D4) pour la Province de Hainaut
 Quatorzième et Quinzième titres de Promotion (D4) pour la Province de Liège

Admission en D3 / Relégation de D3
Les quatre champions (Hannut, le Stade Louvain, le RC Tournai et Seraing ) sont promus en Division 3, d'où sont relégués Bree, Ferrières, Merchtem et Sottegem.

Relégations vers les séries provinciales
 vers le  désormais appelé « Première provinciale ».

Montées depuis les séries provinciales
12 clubs sont admis en « Promotion » () depuis le  désormais appelé « Première provinciale ».

Débuts en Promotion
Cinq clubs restent pour la première fois en "Promotion". Aucun n'a encore joué en séries nationales précédemment. Cela amène le nombre de clubs ayant évolué à ce niveau à 267, et le nombre de clubs différents en nationale à 364.

 FC Testelt est le  brabançon à évoluer à ce niveau.
 Standard Cl. Pâturageois est le  hennuyer à évoluer à ce niveau.
 FC St-Martens-Latem est le  flandrien oriental à évoluer à ce niveau.
 R. Èt. Sp. Dalhelmoise est le  liégeois à évoluer à ce niveau.
 Stade Gedinnois est le  namurois à évoluer à ce niveau.

Notes

Sources et liens externes

Championnat de Belgique de football de quatrième division
D4
D4

redpajama_set_name: RedPajamaWikipedia


text:
Watch Savannah Guthrie's Odd 'Today' Show Opening — Here's Today's Buzz
Kirsten Acuna
Getty Images / Mark DavisCharlie Sheen is planning to sue … someone over the reports he thrashed the Ritz-Carlton in NYC earlier this week.
One woman has "got it bad" for Usher. The singer has a 26-year-old woman stalking him, claiming the two are married. Yikes.
While accepting a Breakthrough Award at Wednesday's Australians in Film event, Liam Hemsworth accidentally said he and Miley Cyrus are already married. Oops.
A XXX website is trying to acquire the rights to use "Ted," the foul-mouthed stuffed bear from the film of the same name, as their mascot.
'90s teen group, the Spice Girls are auctioning off some of their old costumes for charity.
Gotye's "Somebody That I Used to Know" has become Shazam's most tagged song ever.
After launching a show, WikiLeaks is releasing a music CD.
Savannah Guthrie co-anchored alongside Matt Lauer this morning on the "Today" show. However, in the show's opening … and throughout, there was no mention of Guthrie replacing Ann Curry who departed from the show yesterday.
Watch the video below via TMZ:
SEE ALSO: How smart is Natalie Portman? >
ann curry entertainment hollywood news people television thewire-us today tv


I have a Toshiba laptop model# L25-S119 that I recently purchased used. It works great, but the hard disk light blinks constantly. It blinks in a specific pattern - almost like morse code - blink - blink - blink - blink - blinkblink. I've done everything I know how to do - Check for spyware, check for viruses, scanned for broken shortcuts and checked the registry. Short of re-loading XP (and I'm not even sure that will fix it!)I don't know where to turn next. Except here of course! Any help would be most appreciated.
hard drive activity - drive model number?
since it is so regular it does sound like a error code. i don't know if mfg's standardize on those, we may need the model number and mfg to look it up on their website.
see what Device Manager will tell you about the hard drive model. if it is not enough model information there you may have to open it up to see who made the drive and their part number. so is the laptop working ok? did you try looking this up on the toshiba website?
There might just be a program running in the background. Look at the CPU usage and see if it has any effect on usage. Safe mode will tell you alot.
First thank you for your replies. Heres the latest - The hard drive is Toshiba brand model #MK6026GAX. The light continued to flash in Safe Mode and I got pretty frustrated so I made up my mind that I was going to figure this out even if I had to reload XP. Well I went into MSCONFIG to the services tab and started shutting off services. I found one that was some kind of Toshiba update service so I turned it off. After reboot the light doesn't blink any more. It still blinks occasionally, but that is pretty much normal. I'm keeping my fingers crossed! I don't remember the exact file, but if your interested, let me know and I will look it up again.